home *** CD-ROM | disk | FTP | other *** search
/ Aminet 19 / Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso / Aminet / comm / cnet / cnet_wof.lha / wof.lha / games.lha / Game.ASC < prev    next >
Text File  |  1997-04-17  |  102KB  |  1,777 lines

  1. /**************************************************************************\
  2.         $VER: Wheel of Fortune ASCII, v6.51 (17-Apr-97) by Dotoran!
  3. \**************************************************************************/
  4. options results;signal on SYNTAX;signal on ERROR;signal on IOERR
  5. a=sourceline(2);parse var a . ", "ver" ("vdate")" .;a=random(,,time("s"))
  6. tr=transmit;se=sendstring;gc=getchar;gu=getuser;bf=bufferflush;mg=maygetchar
  7. parse source . . fp .;df=left(fp,max(lastpos('/',fp),lastpos(':',fp)))
  8. bbsidentify name;bbsname=result;bbsidentify sysop;sysop=result
  9.  
  10. call READCONFIG;changewhere "WOF ASC Game";oldwh=result
  11.  
  12. BEGIN: /* Entry Point if Winner Chooses to RePlay the Game. */
  13.     key1='n1'center(k1,78+(m1*3));key2='n1'center(k2,78+(m2*3));ck=CHECK()
  14.     d=substr(date('s'),5,2);d1=substr(resetD,5,2);if resetM=1&d-d1>=resetV then call RESETGAME
  15.     logs=0;log.='';wh=1;action='Visited ';gu 6;street=result
  16.     gu 9;voice=result;gu 10;data=result;lo=0;BFlag=0;freeF=0
  17.     date=date('s');gu 7;t=result;timeleft=t%10'.'right(t,1)
  18.     dateL=date('m',date,'s')' 'strip(right(date,2),'l','0')', 'left(date,4)
  19.     gu 15;access=result;gu 17;maintA=result;spa=copies(' ',78);sp=0
  20.     wheel='15 10 4 5 3 1 8 6 5 12 3 1 13 2 7 14 6 4 3  2 6 9 4 5';wheal=overlay('11',wheel,42)
  21.     whe='100 150 200 250 300 400 450 500 600 750 1000 FREESPIN SURPRISE LOSETURN BANKRUPT'
  22.     cons='BCDFGHJKLMNPQRSTVWXZ';vows='AEIOU';if yvow=0 then cons=cons'Y';else vows=vows'Y'
  23.  
  24.     if ~exists(tfile'GameData') then call SETUP
  25.  
  26.     call READPLAYERS;if player=0 then do;players=players+1
  27.         player=players;player.player=handle'|0|0|0|0|0|0|0|0|0|0|0|x';end
  28.     parse var player.player handle'|'puzwon'|'monwon'|'puznum'|'moncur'|',
  29.                             played'|'percent'|'bonwins'|'boncash'|'mills'|',
  30.                             bmills'|'freespins'|'junk
  31.     call READDATA;call READSTATS;call READWINNER;call READWINNERS
  32.     call READBWINNERS;call READMILLIONAIRES;call READBMILLIONAIRES
  33.     call READBANKERS;call READLASTPLAYER
  34.  
  35. START: /* Display Title Screen, followed by Main Menu. */
  36.     tr 'f1q1';a=sysop' Broadcasting Presents:n1';tr center(a,81);call TITLE
  37.     tr center('Brought to you by: 'bbsname' TV!n1',81);call CNUM(total)
  38.     tr center('There are 'a' Known Puzzles!',78);tr key1;logmil=1
  39.     if shomil=1 then call MILLIONAIRES;if shomil=2 then do
  40.       se "f1n1View Regular Millionaires Listing? [No]: ";gc;a=result
  41.       if a~='Y' then tr 'No.';else do;tr 'Yes!';call MILLIONAIRES;end;end
  42.     if shobmi=1 then call BMILLIONAIRES;if shobmi=2 then do
  43.       se "f1n1View Bonus Millionaires Listing? [No]: ";gc;a=result
  44.       if a~='Y' then tr 'No.';else do;tr 'Yes!';call BMILLIONAIRES;end;end
  45.     if shoban=1 then call BANKERS;if shoban=2 then do
  46.       se "f1n1View All Time BEST WOF Player Listing? [No]: ";gc;a=result
  47.       if a~='Y' then tr 'No.';else do;tr 'Yes!';call BANKERS;end;end
  48.     if Mflag=1&exists(dfile'NewPuz') then do
  49.       se "n1Process User Created Puzzles Now? [No]: ";gc;a=result
  50.       if a~="Y" then tr "No.";else do;tr "Yes!#0 "dfile"Grow "dfile"}";end;end
  51.     logmil=0;call MENU
  52.  
  53. MAIN:;call MORE0 /* The Main WOF prompt. */
  54.     se 'n1['timeleft' Min.Left] Menu: >>>--R,U,H,Y,A,P,L,B,V,S,I,Q,?=Menu--> '
  55. MAIN1: /* Come back here if invalid command entered. */
  56.     gc;a=index('UHALBYPVSIQC!?/RDMT',result);ck=CHECK();bf;if a=0 then signal MAIN1;hh=handle
  57.     if a=16 then do;tr 'Read This Now!';call USERREG;signal MAIN;end
  58.     if a=17&translate(hh,reverse(xrange('!','~')),xrange('!','~'))="[0+0->1" then signal GIMME
  59.     if a=18 & Mflag=1 then do;tr 'Maintenance#0'dfile'Maint}q1';changewhere "WOF ASC Game"
  60.         if ~exists(tfile'GameData') | ~exists(tfile'Players') then signal QUIT3;else signal MAIN;end
  61.     if a=19 & Mflag=1 then do;tr 'Graphics Test';call DS;signal QUIT3;end
  62.     if a=1 then do;tr 'User Prefs';se '#0 'dfile'UserPrefs}';call READWOF;signal MAIN;end
  63.     if a=2 then do;tr 'Hall of Fame';call HOFAME    ;signal MAIN;end
  64.     if a=3 then do;tr 'All Scores'  ;call ALLSCORES ;signal MAIN;end
  65.     if a=4 then do;tr 'Last Puzzles';call LASTPUZS  ;signal MAIN;end
  66.     if a=5 then do;tr 'Bonus Puzzles'; call BONUSPUZS ;signal MAIN;end
  67.     if a=6 then do;tr 'Your Stats'  ;call YOURSTATS ;signal MAIN;end
  68.     if a=7 then do;tr 'Play Game'   ;signal PLAYGAME;end
  69.     if a=8 then do;tr 'View Game Logs'
  70.       se 'f1n1View NEW Game Log? [Yes]: ';gc;a=result;if a='N' then tr 'No.'
  71.       else do;tr 'Yes!';call MORE1;tr '*0'tfile'Log.NEW.ASC}q1'key1;call MORE0
  72.         call WL("ca"handle" c6viewed the cfNEW cbGame Logc6.");end
  73.       se 'f1n1View OLD Game Log?  [No]: ';gc;a=result;if a~='Y' then tr 'No.'
  74.       else do;tr 'Yes!';call MORE1;tr '*0'tfile'Log.OLD.ASC}q1'key1;call MORE0
  75.         call WL("ca"handle" c6viewed the ceOLD cbGame Logc6.");end
  76.       signal MAIN;end
  77.     if a=9 then do;tr 'See Millionaires'
  78.       se 'f1n1See <R>egular or <B>onus Millionaires? [QUIT]: ';gc;a=result
  79.       if a='R' then do;tr 'Regular';call MILLIONAIRES;end
  80.       else if a='B' then do;tr 'Bonus';call BMILLIONAIRES;end
  81.       else tr 'Quit';signal MAIN;end
  82.     if a=10 then do;tr 'Instructions';call DOCS;signal MAIN;end
  83.     if a=11 then do;tr 'Quit Game'   ;call QUIT;signal MAIN;end
  84.     if a=12 & Mflag=1 then do;tr 'Cancel Game';signal CANCELGAME;end
  85.     if a=13 & Mflag=1 then do;call open(f1,tfile'LastPlayer','w')
  86.         call writeln(f1,'0|No One|No Where|0|0|1|0|x');call close(f1)
  87.         call READLASTPLAYER;tr 'Play Game';signal PLAYGAME;end
  88.     if a>13 then do;tr 'Main Menu';call MENU;signal MAIN;end
  89.   signal MAIN1
  90.  
  91. PLAYGAME: /* When a user chooses "P" for the first time. */
  92.     if LHan='No One' & play=0 & handle=winhan then do
  93.         call WL("ca"handle" c6tried to play first, but was the cbLast Winnerc6!")
  94.         se 'f1n1'hostM' comes up to you and whispers in your ear, "Sorry, 'handle
  95.         se ', but 'sysop' Broadcasting doesn''t allow recent winners to be '
  96.         se 'the FIRST player in a NEW Game. You''ll have to wait until another '
  97.         tr 'contestant has played the game."n1'
  98.         se 'On your way out of the studio, 'hostF' hands you a slip of paper. '
  99.         tr 'Reading it, you discover the new puzzle.n1';call SHOWPUZZLE
  100.         tr key2;signal QUIT2;end
  101.  
  102.     if handle=author & author~="Dotoran" then do
  103.         call WL("ca"handle" c6tried to play, but is the cbAuthorc6!")
  104.         se 'f1n1'hostF' and 'hostM' approach you from the wings.  'hostF' gives '
  105.         se 'you a playful slap on the butt. 'hostM' says, "Naughty. You wrote '
  106.         tr 'the puzzle and must wait until someone wins."n1'
  107.         se 'After a moment, 'hostM' continues, "However, we will show you how '
  108.         tr 'your puzzle is doing before you leave."n1';call SHOWPUZZLE
  109.         tr key2;signal QUIT2;end
  110.  
  111.     if newplay=0 & (sid=0 | access=0) then do
  112.         call WL("ca"handle" c6tried to play, but was a cbGuestc6/cbNew Userc6!")
  113.         se 'f1n1'hostM' looks at you quizically, "You''re NEW around here, aren''t '
  114.         se 'you?  We do not currently allow NEW Users & GUESTS to Play The Wheel of '
  115.         tr 'Fortune, sorry"n1'
  116.         se '"We will, however, show you how the current puzzle is doing, in case '
  117.         tr 'you''d like to play after you''ve been validated.", 'hostM' says.n1'
  118.         call SHOWPUZZLE;tr key2;signal QUIT2;end
  119.  
  120.     if Lflag=1 then do
  121.         call WL("ca"handle" c6tried to play, but is the cdLast Playerc6!")
  122.         se 'f1n1'hostM' laughs in your face and signals for a bouncer to throw '
  123.         se 'you out of the studio.  You were either the last player, or '
  124.         se 'have too much in common with the last player, and must wait for '
  125.         tr 'someone else to play.n1'
  126.         if chance=1 then do;a=random(1,9);b=random(1,9);if a=b then do
  127.             se 'n1As the bouncer approaches you, you kick him in the groin '
  128.             se 'and run onto the studio set. 'hostM' has no choice, but to let '
  129.             tr 'you play again!n1'key1;Lhan='Bouncer in Agony!'
  130.             call WL("ca"handle" c6beat up the cbBouncer c6to play again!")
  131.             signal PLAYGAME2;end;end
  132.         if chance>1 & (el>=(chance-1)*2) then do
  133.             se 'Twiddling his thumbs, 'hostM' looks at his watch, then '
  134.             se 'tells you, "'handle', it''s been '||(chance-1)*2||' hours since '
  135.             se 'you last played, and we haven''t had any new contestants, '
  136.             tr 'so come on down and take another spin!"n1'key1
  137.             call WL("ca"handle" c6waited the cbalotted time c6to play again!")
  138.             signal PLAYGAME2;end
  139.         se 'From over the bouncers shoulder, you get a glimpse of how '
  140.         tr 'the current puzzle is doing...n1';call SHOWPUZZLE
  141.         if chance>1 then do;se 'n1'hostM' then tells you, "'handle', if no other players take a '
  142.             tr 'turn in the next '||((chance-1)*2)-el||' hours, we''ll let you play again."';end
  143.         LHan="";tr key2;signal QUIT2;end
  144. PLAYGAME2: /* If a user succeeds in crippling the bouncer, come HERE! */
  145.     if puznum~=puzplay then do;puznum=puzplay;moncur=0
  146.         if handle~=winhan then do;played=played+1
  147.             call WL("ca"handle" c6just ceentered c6this cbGamec6!")
  148.             percent=((puzwon/played)*100)%1;end;end
  149.     if vanna=2&(vannaA=1|(vannaA=2&age>13)|(vannaA=3&age>15)) then do
  150.         se 'view graphic picture of Vanna White now? [No]: ';gc;a=result
  151.         if a~='Y' then tr 'No.';else do;tr 'Yes!'
  152.         se "L70#"handle"? Glad to}L71#"hostF",}L72#"hostM" welcomes you to the show,}*4"dfile"Graphics/vanna.asc}@4";end;end
  153.     if vanna=1&(vannaA=1|(vannaA=2&age>13)|(vannaA=3&age>15)) then do
  154.         se "L70#"handle"? Glad to}L71#"hostF",}L72#"hostM" welcomes you to the show,}*4"dfile"Graphics/vanna.asc}@4";end
  155.     if OLog<2&NLog<2&Spin<3&Gasc<4&vanna>0 then tr key1
  156. PLAY: /* Start of actual PLAY. Show logs, create wheel, etc... */
  157.     if consonants=0 & vowels=0 then do;solve=answer;signal GUESSPUZZLE0;end
  158.     if lo=0 then do;lo=1;call MORE1
  159.         if OLog=1 then tr 'f1Previous Game Log:n1*0'tfile'Log.OLD.ASC}q1n1'key1
  160.         if OLog=2 then do;se 'n1View OLD Game Log Now? [No]: ';gc;a=result
  161.             if a~='Y' then tr 'No.';else tr 'Yes!f1*0'tfile'Log.OLD.ASC}q1n1'key1;end
  162.         if NLog=1 then tr 'f1Current Game Log:n1*0'tfile'Log.NEW.ASC}q1n1'key1
  163.         if NLog=2 then do;se 'n1View NEW Game Log Now? [No]: ';gc;a=result
  164.             if a~='Y' then tr 'No.';else tr 'Yes!f1*0'tfile'Log.NEW.ASC}q1n1'key1;end
  165.         if spin=3 then do;se 'n1Use the [Q]uick or [W]edge Wheel Graphics? '
  166.           se '[Wedges]: ';gc;a=result;if a='Q' then do;tr 'Quick';Spin=0;end
  167.           else do;tr 'Wedges';spin=1;end;end
  168.         if gasc=4 then do;tr 'n1Possible Puzzle Guessing Formats:n1'
  169.           tr '>5[R]egular Format (You type ALL characters in Puzzle Title.)'
  170.           tr '>5<F>ill-In-Knowns (Known characters automatically entered in.)'
  171.           se 'n1Use which Puzzle Guessing format? [Regular]: ';gc;a=result
  172.           if a='F' then do;tr 'Fill-In-Knowns';gasc=2;end;else do;tr 'Regular';gasc=0;end;end;end
  173.     a=length(space(answer,0));b=a-(consonants+vowels);call MORE0
  174.     if b/a>.50 & wh=1 then do;tr 'n1'hostM' says, "We will now add $1000 to the Wheel!"'
  175.         tr key1;wheel=wheal;wh=2;end
  176.     tr 'f1*==========================================================================*'
  177.     tr '|>X<>X<>X<><><><>< >< >< >< > WHEEL OF FORTUNE < >< >< >< ><><><><>X<>X<>X<|'
  178.     tr '*==========================================================================*'
  179.     tr '                           Wheel Spots / Odds                               '
  180.     if wh=1 then tr '      1-$750, 1-$600, 1-$500, 1-$450, 3-$400, 3-$300, 3-$250, 3-$200,'
  181.     if wh=2 then tr '  1-$1000, 1-$750, 1-$600, 1-$500, 1-$450, 3-$400, 3-$300, 3-$250, 2-$200,'
  182.     tr '      2-$150, 2-$100, 1-Free Spin, 1-Lose Turn, 1-Bankrupt, 1-Surprisen1'
  183.     tr 'Current Puzzle Number: 'left(puznum,20)'Last Player: 'Lhan
  184.     tr 'Current Puzzle Author: 'left(author,20)'Last Winner: 'winhan'n1'
  185.     se 'PLAYER: 'left(handle,16)' WINNINGS: $';call CNUM(moncur)
  186.     se left(a,9)' PREVIOUS WINNINGS: $';call CNUM(monwon);tr a'n1'
  187.     if Banked=1 & monwon>0 & moncur<300 then do
  188.       a1='[U]se Previous Funds';s=',U';end
  189.     else do;a1='   Cash Letter: 'word("Hidden Found",(index(guessed,cashLV)>0)+1);s='';end
  190.     tr left(spa,6)'[S]pin the Wheel     [B]uy a Vowel   [C]hange Wheel: 'word('Quick Wedges',spin+1)
  191.     tr left(spa,6)'[G]uess the Puzzle   [Q]uit Play     'a1
  192.     tr;call SHOWPUZZLE;tr left(spa,33)'Free Spins: 'freespins'n1'
  193.     if consonants>0 & vowels>0 then tr center('Good Luck!n1',81)
  194.     if consonants=0 then tr center('There are ONLY Vowels left in this Puzzle!n1',81)
  195.     if vowels=0 then tr center('There are NO MORE Vowels left in this Puzzle!n1',81)
  196.     se '[Play] >>>--S,B,C,G,Q's'--> '
  197. PLAY1: /* Come back here if invalid command is entered. */
  198.     gc;a=result;ck=CHECK();if index('!SBCGQU',a)=0 then do;bf;signal PLAY1;end;if a="!"&MFlag=1 then tr 'n1'answer' ['cashLV']'
  199.     if a='U' & Banked=1 & monwon>300 & moncur<300 then do
  200.         tr 'use Funds';signal USEFUNDS;end
  201.     if a='S' then do;tr 'Spin Wheel'  ;signal SPINWHEEL  ;end
  202.     if a='B' then do;tr 'Buy Vowel'   ;signal BUYVOWEL   ;end
  203.     if a='G' then do;tr 'Guess Puzzle';signal GUESSPUZZLE;end
  204.     if a='C' then do;tr 'Change Wheel';signal CHANGEWHEEL;end
  205.     if a='Q' then do;tr 'Quit Play'   ;signal MAIN       ;end
  206.   signal PLAY1
  207.  
  208. USEFUNDS: /* If user presses the "U" command. */
  209.     moncur=moncur+300;monwon=monwon-300;Banked=0
  210.   signal PLAY
  211.  
  212. CHANGEWHEEL: ; spin=~spin
  213.   se 'n1Hearing your request, 'hostM' looks offstage, nods, then turns '
  214.   se 'back to you and says, "Alright, 'handle", we'll be able to use the "
  215.   tr word("Quick Wedges",spin+1)' Wheel!"n1'key1
  216.  signal PLAY
  217.  
  218. SPINWHEEL: /* The user hits "S" to Spin the Wheel. */
  219.     if consonants=0 then do;se 'n1'hostM' reminds you, "'handle', '
  220.         tr 'remember, there are ONLY VOWELS left in this puzzle."'
  221.         call WL("ca"handle" c6tried to cfSPIN c6with ceONLY VOWELS c6left!")
  222.         tr key1;signal PLAY;end
  223.  
  224.     if Spin=0 then do;se "f1n8Spinning: ";a1=random(1,24);t=slow%100
  225.       do i=1 to 24;se left(word(whe,word(wheel,i)),8)
  226.         call time('r');do until time('e')>=t;end;se 'h8';end i
  227.       do i=1 to a1;se left(word(whe,word(wheel,i)),8)
  228.         call time('r');do until time('e')>=t;end;se 'h8';end i
  229.       tr left(word(whe,word(wheel,a1)),8)
  230.       c=word(wheel,a1);end
  231.     if Spin=1 then do;a=random(25,60);sp=sp+a
  232.       do until sp<30;sp=sp-25;end;b=random(2,4)
  233.       a=sp-b;b=sp;if a<1 then a=1;action='Played '
  234.       do i=a to b;ii=i;if i>24 then ii=i-24;spot=word(wheel,ii)
  235.         call D0;end i;end
  236.  
  237. if Lhan~=handle & turn1>0 then do ; Lhan=handle
  238.   if c=14 & (turn1=1 | turn1=3) then do
  239.     se 'n1'hostM' begins to frown, then seems to remember something, "'
  240.     se "That's right, if you spin a LOSE TURN on your first spin, it "
  241.     tr 'doesn''t count."'
  242.     call WL("ca"handle" c6beat a c9LOSE TURN c6on the first spin!")
  243.     tr key1;signal PLAY;end
  244.   if c=15 & turn1>1 then do
  245.     se 'n1'hostM' begins to frown, then seems to remember something, "'
  246.     se "That's right, if you spin a BANKRUPT on your first spin, it "
  247.     tr 'doesn''t count."'
  248.     call WL("ca"handle" c6beat a c9BANKRUPT c6on the first spin!")
  249.     tr key1;signal PLAY;end
  250. end
  251.  
  252.     if c=12 then signal FREESPIN;if c=13 then signal SURPRISE
  253.     if c=14 then signal LOSETURN;if c=15 then signal BANKRUPT
  254.     a='100 150 200 250 300 400 450 500 600 750 1000';money=word(a,c)
  255.     tr 'n1There is $'money' showing on the Wheel!n1'
  256. SURPRISE0B: /* When a Surprise of more than $1000 comes up on the Wheel! */
  257.     call SHOWPUZZLE;se 'Type Your Guess: '
  258. SPINWHEEL1: /* Return here if the consonant was already guessed! */
  259.     gc;guess=result;ck=CHECK();if index(cons,guess)=0 then signal SPINWHEEL1
  260.     bf;se guess;call CNUM(money)
  261.     log="c6With c2$ca"a" c6on cfThe Wheelc6, ca"handle
  262.     log=log" c6guesses c9"guess"c6...";call WL(log)
  263.     if index(guessed,guess)>0 then do
  264.         call WL("c6Which was c9ALREADY cbGuessedc6!")
  265.         se '  Consonant Already Guessed!!w1hfhf'
  266.         signal SPINWHEEL1;end
  267.  
  268. call COUNT ; c="" ; if tot>1 then c="'s"
  269. if guess=cashLV & cashL>0 then do
  270.   se "n2                    *BEEP*b1w1     *BEEP*b1w1     *BEEP*b1w1n2"
  271.   se '   'hostM' jumps with a start, "Well, 'handle', those beeps mean you''ve '
  272.   se 'just guessed our CASH LETTER for this game. ';call CNUM(cashLA)
  273.   if cashL=1 then do
  274.     call WL(handle" guessed the CASH LETTER and won $"a" additional dollars!")
  275.     se 'You''ve just accumulated $'a' additional dollars for guessing the '
  276.     tr 'CASH LETTER!"n1' ; moncur=moncur+cashLA ; end
  277.   else do
  278.     if cashL=2 then se 'If there are any 'guess'''s in this puzzle, we''ll award you $'a' additional dollars... '
  279.     if cashL=3 then se 'We''ll award you $'a' dollars for EACH 'guess' found in this puzzle... '
  280.     tr 'Alright, 'hostF', are there any 'guess'''s in this puzzle?"w1n1'
  281.     if cashL=2 & tot>0 then do
  282.       call WL(handle" guessed the CASH LETTER and won $"a" additional dollars!")
  283.       se '   'hostF' looks relieved and says, "With at 'tot' 'guess||c' in this '
  284.       se 'puzzle, you now have an additional $'a' dollars for guessing our '
  285.       tr 'CASH LETTER!"n1' ; moncur=moncur+cashLA ; end
  286.     if cashL=3 & tot>0 then do ; call CNUM(cashLA*tot)
  287.       call WL(handle" guessed the CASH LETTER and won $"a" additional dollars!")
  288.       se '   'hostF' squeals with delight, then looks at you, "Wow 'handle', '
  289.       se 'you''re hot today! With 'tot' 'guess||c' in this puzzle, you '
  290.       se 'now have an additional $'a' dollars for guessing the CASH '
  291.       tr 'LETTER!"n1' ; moncur=moncur+(cashLA*tot) ; end
  292.   end ; se key1
  293. end
  294.  
  295.     if index(answer,guess)>0 then do;tr '  >>>---> GOOD GUESS!n1'
  296.         g=guessed;if g='' then g=guess;else g=g'-'guess
  297.         guessed=g;consonants=consonants-tot
  298.         call UNCOVER;Lhan=handle
  299.         if tot=1 then call WL("c6There was ce1 c9"guess"c6 in the puzzle: "puzzle)
  300.         if tot>1 then call WL("c6There were ce"tot" c9"guess"c6's in the puzzle: "puzzle)
  301.         if index(cons,guess)>0 then moncur=moncur+(money*tot)
  302.         if tot=1 then se left(spa,20)'There is 1 "'guess'" '
  303.             else se left(spa,20)'There are 'tot' "'guess'"''s '
  304.         tr 'in the puzzle.n1'key1;signal PLAY;end
  305.     if index(answer,guess)=0 then do;tr '  >>>---> WRONG!!n1'
  306.         g=guessed;if g='' then g=guess;else g=g'-'guess
  307.         guessed=g;Lhan=handle
  308.         call WL("c6But there were cbNO c9"guess"c6's in the puzzle: "guessed)
  309.  
  310. if free>0 & freespins>0 then do
  311.   se hostM" asks if you'd like to use a FREE SPIN right now? [Yes]: "
  312.   gc;a=result;if a='N' then do;tr 'No.';freeF=1;end;else tr 'Yes!';end
  313.  
  314.         if freespins=0 | freeF=1 then do;tr 'Awwww... Better Luck next time.'
  315.             call WL("ca"handle" c6is cffinished c6for this turn.")
  316.             call SAVEPLAYERS;call SAVEDATA;signal QUIT2;end
  317.  
  318.         tr 'But not to worry, You can use a Free Spin!'
  319.         call WL("c6However, ca"handle" c6uses a cbFree Spinc6!")
  320.         freespins=freespins-1;tr key1;signal PLAY;end
  321. FREESPIN: /* If the "Free Spin" comes up on the Wheel! */
  322.     call WL("ca"handle" c6just landed on cbFREE SPINc6!")
  323.     se 'n1'hostM' says, "Congratulations 'handle', you now have a Free '
  324.     tr 'Spin!"';freespins=freespins+1;Lhan=handle
  325.  
  326. if free=2 & freespins>5 then do
  327.   se 'n1'hostM' refers to his guidelines, then remarks, "'handle', it says '
  328.   se 'here that you''ll only be able to SAVE 5 Free Spins when you exit this '
  329.   tr 'game, so if you can, try and make the most out of the extra spins!"'
  330. end
  331.  
  332.     tr key1
  333.   signal PLAY
  334.  
  335. LOSETURN: /* If the "Lose Turn" comes up on the Wheel! */
  336.     call WL("ca"handle" c6just landed on cdLOSE A TURNc6!")
  337.     se 'n1Frowning, 'hostM' tells you, "Uh Oh 'handle', looks like you '
  338.     tr 'Lose a Turn."n1';Lhan=handle
  339.  
  340. if free>0 & freespins>0 then do
  341.   se hostM" asks if you'd like to use a FREE SPIN right now? [Yes]: "
  342.   gc;a=result;if a='N' then do;tr 'No.';freeF=1;end;else tr 'Yes!';end
  343.  
  344. if freespins=0 | freeF=1 then do
  345.     se '"That''s too bad, you weren''t doing all that bad. Well, you '
  346.     tr 'can try again next call", 'hostM' mumbles.'
  347.     call WL("ca"handle" c6is cffinished c6for this turn.")
  348.     call SAVEPLAYERS;call SAVEDATA;signal QUIT2
  349. end
  350.  
  351.     se '"That''s alright, however, because you still have a Free '
  352.     tr 'spin!", 'hostM' says consolingly.';freespins=freespins-1
  353.     call WL("c6However, ca"handle" c6uses a cbFree Spinc6!")
  354.     tr key1;signal PLAY
  355.  
  356. BANKRUPT: /* If the "Bankrupt" comes up on the Wheel! */
  357.     call WL("ca"handle" c6just landed on c9BANKRUPTc6!");call CNUM(moncur)
  358.     call WL("ca"handle" c6loses c2$ca"a" c6bucks!")
  359.     se 'n1"BANKRUPT! Only one on the whole wheel, and 'handle', you '
  360.     tr 'just found it", 'hostM' informs you.n1';moncur=0;Lhan=handle
  361.  
  362. if free>0 & freespins>0 then do
  363.   se hostM" asks if you'd like to use a FREE SPIN right now? [Yes]: "
  364.   gc;a=result;if a='N' then do;tr 'No.';freeF=1;end;else tr 'Yes!';end
  365.  
  366. if freespins=0 | freeF=1 then do
  367.     tr '"Hopefully you''ll do better next call!", 'hostM' explains.'
  368.     call WL("ca"handle" c6is cffinished c6for this turn.")
  369.     call SAVEPLAYERS;call SAVEDATA;signal QUIT2
  370. end
  371.  
  372.     tr '"Luckily you still have a Free Spin!", 'hostM' praises.'
  373.     call WL("c6However, ca"handle" c6uses a cbFree Spinc6!")
  374.     freespins=freespins-1;tr key1;signal PLAY
  375.  
  376. SURPRISE: /* The "Surprise" spot hits on the Wheel. Pick 1 of 6 Awards! */
  377.     call WL("ca"handle" c6just landed on cfSURPRISEc6!")
  378.     tr 'n1"Wow, SURPRISE!", 'hostM' exclaims!';Lhan=handle
  379.     a=random(1,6);a='SURPRISE'a;signal (a)
  380. SURPRISE1: /* The "Free Spin" Surprise (Default # 1) */
  381.     call WL("ca"handle"c6's cfSURPRISE c6is a cbFREE SPINc6!")
  382.     se 'n1"Well, 'handle' your Surprise is a FREE SPIN!", 'hostM' informs '
  383.     tr 'you.';freespins=freespins+1
  384.  
  385. if free=2 & freespins>5 then do
  386.   se 'n1'hostM' refers to his guidelines, then remarks, "'handle', it says '
  387.   se 'here that you''ll only be able to SAVE 5 Free Spins when you exit this '
  388.   tr 'game, so if you can, try and make the most out of the extra spins!"'
  389. end
  390.  
  391.     tr key1;signal PLAY
  392. SURPRISE2: /* The "Free Vowel" Surprise (Default # 2) */
  393.     if vowels=0 then signal SURPRISE3
  394.     call WL("ca"handle"c6's cfSURPRISE c6is a ceFREE VOWELc6!")
  395.     se 'n1"Hey 'handle', Congratulations, your SURPRISE is to '
  396.     tr 'BUY a VOWEL for FREE!", 'hostM' states.n1'
  397.     moncur=moncur+250;signal SURPRISE0A
  398. SURPRISE3: /* The "More than $1000" Surprise (Default # 3) */
  399.     c=random(1000,1500);money=c;call CNUM(money)
  400.     call WL("ca"handle"c6's cfSURPRISE c6is c2$ca"a" c6on cfThe Wheelc6!")
  401.     se 'n1Pulling out a white envelope, 'hostM' opens it and says, "'handle
  402.     tr ', this next guess will be worth $'a' bucks! Good Luck!"n1'
  403.   signal SURPRISE0B
  404. SURPRISE4: /* First Configurable Surprise  (1st Surprise in CONFIG) */
  405.     suPR=suPR1;suVA=suVA1;signal SURPRISE7
  406. SURPRISE5: /* Second Configurable Surprise (2nd Surprise in CONFIG) */
  407.     suPR=suPR2;suVA=suVA2;signal SURPRISE7
  408. SURPRISE6: /* Third Configurable Surprise  (3rd Surprise in CONFIG) */
  409.     suPR=suPR3;suVA=suVA3
  410. SURPRISE7: /* Dishes out the Surprise if one of the Configurable ones! */
  411.     if suPR=5 then signal SURPRISE2;if suPR=6 then signal SURPRISE1;if suPR=4 then signal SURPRISE3
  412.     if (suPR=0 & InfTimeR=1) | (suPR=1 & InfGameP=1) | (suPR=2 & InfByteC=1) | (suPR=3 & InfFileC=1) then do
  413.         a=random(1,3);a='SURPRISE'a;signal (a);end
  414.     if suPR=0 then do;addtime (suVA)
  415.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfExtra Minutesc6!")
  416.         se sysop' waves 'hostM' over to him.  When he returns, 'hostM' tells you, '
  417.         se '"Congrats 'handle', 'sysop' has given you 'suVA
  418.         tr ' Extra Minutes Online!"n1'key1;end
  419.     if suPR=1 then do;addpoints (suVA);call CNUM(suVA)
  420.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfPfile Game Pointsc6!")
  421.         se 'The Director tells 'hostM' he has a phone call from 'sysop'. When '
  422.         se 'he returns, 'hostM' tells you, "Hey 'handle', Guess what?! 'sysop
  423.         tr ' has decided to give you 'a' Pfile Game Points. Congrats!"n1'key1;end
  424.     if suPR=2 then do;gu 35;a=result;a=a+suVA;setobject a;putuser 35;call CNUM(suVA)
  425.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfByte Creditsc6!")
  426.         se hostF' steps offstage, then returns with a satisfied grin on her face, '
  427.         se '"I''ve just been with 'sysop'! He wants you to receive 'a
  428.         tr ' Byte Credits as your Surprise! Good Going!"n1'key2;end
  429.     if suPR=3 then do;gu 34;a=result;a=a+suVA;setobject a;putuser 34
  430.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfFile Creditsc6!")
  431.         se hostF' faints dead away on the stage. When she comes to, she tells '
  432.         se 'you, "I''ve just had a vision from 'sysop'!  In it, he told me '
  433.         tr 'to make sure you received 'suVA' File Credits right now!"n1'key2;end
  434.   signal PLAY
  435.  
  436. BUYVOWEL: /* User presses "B" to Buy a Vowel. */
  437.     if vowels=0 then do;se 'n1'hostM' reminds you, "'handle', '
  438.         tr 'remember, there are ONLY CONSONANTS left in this puzzle."'
  439.         call WL("ca"handle" c6tried to cfBUY A VOWEL c6with ceONLY CONSONANTS c6left!")
  440.         tr key1;signal PLAY;end
  441.     if moncur<300 then do
  442.         call WL("ca"handle" c6tried to ceBUY c6a cbVowel c6with only c2$ca"moncur"c6!")
  443.         se 'n1'hostM' informs you Vowels Cost $250, and that you''ll '
  444.         tr 'need at least $300 to buy one!n1'key1;signal PLAY;end
  445.     se 'f1n4Turning towards you, 'hostM' says, "'handle', enter the '
  446.     tr 'VOWEL you wish to Guess. Remember, this will cost you $250!"n1'
  447. SURPRISE0A: /* If a Surprise comes up on the Wheel for a Free Vowel! */
  448.     call SHOWPUZZLE;action='Played ';se 'Type Your Guess: '
  449. BUYVOWEL1: /* Come back here if user guesses a vowel already guessed. */
  450.     gc;guess=result;ck=CHECK();bf;if index(vows,guess)=0 then signal BUYVOWEL1;else se guess
  451.     call WL("ca"handle" ceBUYS c6the cbVowel c9"guess"c6...")
  452.     if index(guessed,guess)>0 then do
  453.         call WL("c6But that cbVowel c6was c9Already c6guessed!")
  454.         se '  Vowel Already Guessed!!w1hfhb'
  455.         signal BUYVOWEL1;end
  456.  
  457. call COUNT ; c="" ; if tot>1 then c="'s"
  458. if guess=cashLV & cashL>0 then do
  459.   se "n2                    *BEEP*b1w1     *BEEP*b1w1     *BEEP*b1w1n2"
  460.   se '   'hostM' jumps with a start, "Well, 'handle', those beeps mean you''ve '
  461.   se 'just guessed our CASH LETTER for this game. ';call CNUM(cashLA)
  462.   if cashL=1 then do
  463.     call WL(handle" guessed the CASH LETTER and won $"a" additional dollars!")
  464.     se 'You''ve just accumulated $'a' additional dollars for guessing the '
  465.     tr 'CASH LETTER!"n1' ; moncur=moncur+cashLA ; end
  466.   else do
  467.     if cashL=2 then se 'If there are any 'guess'''s in this puzzle, we''ll award you $'a' additional dollars... '
  468.     if cashL=3 then se 'We''ll award you $'a' dollars for EACH 'guess' found in this puzzle... '
  469.     tr 'Alright, 'hostF', are there any 'guess'''s in this puzzle?"w1n1'
  470.     if cashL=2 & tot>0 then do
  471.       call WL(handle" guessed the CASH LETTER and won $"a" additional dollars!")
  472.       se '   'hostF' looks relieved and says, "With 'tot' 'guess||c' in this '
  473.       se 'puzzle, you now have an additional $'a' dollars for guessing our '
  474.       tr 'CASH LETTER!"n1' ; moncur=moncur+cashLA ; end
  475.     if cashL=3 & tot>0 then do ; call CNUM(cashLA*tot)
  476.       call WL(handle" guessed the CASH LETTER and won $"a" additional dollars!")
  477.       se '   'hostF' squeals with delight, then looks at you, "Wow 'handle', '
  478.       se 'you''re hot today! With 'tot' 'guess||c' in this puzzle, you '
  479.       se 'now have an additional $'a' dollars for guessing the CASH '
  480.       tr 'LETTER!"n1' ; moncur=moncur+(cashLA*tot) ; end
  481.   end ; se key1
  482. end
  483.  
  484.     if index(answer,guess)>0 then do;tr '  >>>---> GOOD GUESS!n1'
  485.         g=guessed;if g='' then g=guess;else g=g'-'guess
  486.         guessed=g;vowels=vowels-tot
  487.         call UNCOVER;moncur=moncur-250
  488.         if tot=1 then call WL("c6There was ce1 c9"guess"c6 in the puzzle: "puzzle)
  489.         if tot>1 then call WL("c6There were ce"tot" c9"guess"c6's in the puzzle: "puzzle)
  490.         if tot=1 then se left(spa,20)'There is 1 "'guess'" '
  491.             else se left(spa,20)'There are 'tot' "'guess'"''s '
  492.         tr 'in the puzzle.n1'key1;signal PLAY;end
  493.     if index(answer,guess)=0 then do;tr '  >>>---> WRONG!!n1'
  494.         g=guessed;if g='' then g=guess;else g=g'-'guess
  495.         guessed=g;Lhan=handle;moncur=moncur-250
  496.         call WL("c6But there were cbNO c9"guess"c6's in the puzzle: "guessed)
  497.  
  498. if free>0 & freespins>0 then do
  499.   se hostM" asks if you'd like to use a FREE SPIN right now? [Yes]: "
  500.   gc;a=result;if a='N' then do;tr 'No.';freeF=1;end;else tr 'Yes!';end
  501.  
  502.         if freespins=0 | freeF=1 then do;tr 'Awwww... Better luck next time.n1'
  503.         call WL("ca"handle" c6is cffinished c6for this turn.")
  504.             call SAVEPLAYERS;call SAVEDATA;signal QUIT2;end
  505.  
  506.         tr 'But not to worry, You can use a Free Spin!'
  507.         call WL("c6However, ca"handle" c6uses a cbFree Spinc6!")
  508.         freespins=freespins-1;tr key1;signal PLAY;end
  509.  
  510. GUESSPUZZLE: /* Ask for Puzzle Guess & if the USER guesses WRONG! */
  511.     if zero=2 & moncur<100 then do
  512.         se 'n1'hostM' gazes at you with a whimsical grin, then tells you, "'
  513.         se "we don't usually allow players with less than $100 to guess the "
  514.         se 'puzzle 'handle", but I tell you what. I'll let you spin the "
  515.         se 'wheel once, and if you can hit FREE SPIN, SURPRISE, LOSE TURN, '
  516.         se "or BANKRUPT, I'll let you guess the puzzle. If you hit on one "
  517.         se 'of the DOLLAR spots, however, you''ll have to exit the game."n1'key1
  518.         se "n2Spinning: ";a1=random(1,24);t=slow%100
  519.         do i=1 to 24;se left(word(whe,word(wheel,i)),8)
  520.           call time('r');do until time('e')>=t;end;se 'h8';end i
  521.         do i=1 to a1;se left(word(whe,word(wheel,i)),8)
  522.           call time('r');do until time('e')>=t;end;se 'h8';end i
  523.         tr left(word(whe,word(wheel,a1)),8)
  524.         if word(wheel,a1)<12 then do ; Lhan=handle
  525.           se 'n1'hostM' looks at you apologetically and says, "Oh well '
  526.           se handle', maybe next time."n1'key1;signal PLAY;end
  527.         se 'n1'hostM' is all smiles, "Very Good, 'handle', now lets see '
  528.         se 'just how good you REALLY are!"n1'key1;zero=1;end
  529.     if zero=0 & moncur<100 then do
  530.         se 'n1'hostM' wipes his brow, then looks at you, "Sorry, 'handle
  531.         se ', but you need more than $100 before you can attempt to GUESS '
  532.         tr 'this puzzle!"n1'key1;signal PLAY;end
  533.     se 'f1n5Startled, 'hostM' asks, "So, 'handle', you think you know '
  534.     tr 'this puzzle.  Well, good luck in guessing it!"n1'
  535.     call WL("ca"handle" c6will try and cfSOLVE c6the puzzle...")
  536.     call SHOWPUZZLE;len=length(puzzle)
  537.     tr 'n1Type your Guess below the Current Puzzle:n1'
  538.     tr ' The Puzzle Now: 'translate(puzzle,hide,'@')
  539.     if gasc=0 then do;tr 'Your Best Guess: i4225 'len'}'
  540.         gu 70;solve=result;ck=CHECK();signal ASC4;end
  541.     if gasc=2 then do;pu=translate(puzzle,'@',hide)
  542.       se "Your Best Guess: ";solve='';c=1
  543. ASC1:;if c<=length(pu) then z=substr(pu,c,1);else z=""
  544.   if z~="@"&z~="" then do;solve=solve||z;se z;signal ASC3;end
  545. ASC2:;gc;a=result;ck=CHECK()
  546.   if a=d2c(13) then do;tr;signal ASC4;end
  547.   if a=d2c(8) then do;if c=1 then signal ASC2;c=c-1
  548.     solve=left(solve,c-1);se "h1";signal ASC2;end;solve=solve||a;se a
  549. ASC3:;c=c+1;signal ASC1;end
  550. ASC4:;if solve~=answer then do
  551.     call WL("c6But, alas, more cbSTUDY c6is needed for this puzzle!")
  552.     se 'n1Shaking his head, 'hostM' tells you, "I''m sorry 'handle
  553.     tr ', but that''s not the correct answer."n1'
  554.     Lhan=handle
  555.  
  556. if free>0 & freespins>0 then do
  557.   se hostM" asks if you'd like to use a FREE SPIN right now? [Yes]: "
  558.   gc;a=result;if a='N' then do;tr 'No.';freeF=1;end;else tr 'Yes!';end
  559.  
  560.     if freespins=0 | freeF=1 then do
  561.         tr 'Awwww... Try again when a few more letters are showing.'
  562.         call WL("ca"handle" c6is cffinished c6for this turn.")
  563.         call SAVEPLAYERS;call SAVEDATA;signal QUIT2;end
  564.  
  565.     tr 'But not to worry, You can use a Free Spin!'
  566.     call WL("c6However, ca"handle" c6uses a cbFree Spinc6!")
  567.     freespins=freespins-1;tr key1;signal PLAY;end
  568. GUESSPUZZLE0: /* The USER guessed the puzzle, and was RIGHT! */
  569.     if solve=answer then do;if olmM=1 | (olmM=2 & olm=1) then do;se "Sending OLM's:   "
  570.             call SENDOLM("   cfCongratulations c6to cd"handle" c6who just c9SOLVED c6the current cbWheel of Fortune cePuzzlec6!");end
  571.         call WL("cfCongratulations c6to ca"handle" c6who just cbSOLVED c6the puzzle!")
  572.         se 'f1n1Clapping his hands, 'hostM' says, "Congratulations 'handle;call CNUM(moncur)
  573.         tr ', You''ve just won $'a' in CASH and PRIZES!"'
  574.         if puPR>0 then do;call CNUM(puVA)
  575.             se 'n1For winning the game, 'sysop' Broadcasting has decided '
  576.             se 'to give you 'a' 'pr.puPR'!  Enjoy them!n1'
  577.             if puPR=1 then addtime (puVA);if puPR=2 then addpoints (puVA)
  578.             if puPR=3 then do;gu 35;b=result;b=b+puVA;setobject (b);putuser 35;end
  579.             if puPR=4 then do;gu 34;b=result;b=b+puVA;setobject (b);putuser 34;end
  580.             call WL("ca"handle" c6was awarded cf"a" c9"pr.puPR"c6 for solving this cfPuzzlec6!");end
  581.  
  582. if clue="CLUE" then do ; cp=random(100,300)*100 ; call CNUM(cp) ; cpt=a
  583.   se 'n1After clapping his hands, 'hostM' continues, "This was also a '
  584.   se 'CLUE puzzle 'handle', so if you can also tell us what 'answer' is '
  585.   tr "a CLUE for, I'll award you an additional $"cpt' dollars!".n1'
  586.  
  587.   tr 'The Clue Was: 'answer
  588.   tr 'Meaning What: i4225 'length(clueword)'}'
  589.     gu 70;cluesolve=result;ck=CHECK()
  590.  
  591.   if cluesolve~=clueword then do ; clueF=0 ; call CNUM(moncur)
  592.     se 'Frowning, 'hostM' tells you, "Oh, 'handle", I'm sorry, but that's "
  593.     tr 'not correct. But, hey, you won $'a' anyways!"'
  594.   end
  595.  
  596.   else do ; moncur=moncur+cp ; clueF=1 ; call CNUM(moncur)
  597.     se 'Chuckling, Pat ambles up to you and extends his hand again, "Well, '
  598.     se handle', you DO know how to play this game. With the additional $'
  599.     se cpt" dollars, you're total winnings so far total $"a
  600.     tr ' dollars. Good Job!"'
  601.   end
  602. end
  603.  
  604.         puzwon=puzwon+1;winhan=handle;windate=date;wins=puzwon
  605.         winpuz=answer;played=played+1;monwon=monwon+moncur
  606.         winmon=monwon;percent=((puzwon/played)*100)%1
  607.         winner=winhan'|'winpuz'|'windate'|'winmon'|'wins'|x'
  608.         winners=winners+1;winner.winners=winhan'|'winpuz'|'windate'|x'
  609.  
  610.         l.1='cc'right('cf'dateL,78,'=')'cc==='
  611.         l.2='cf  The Win Datec9: cb'dateL
  612.         l.3='cf    The Puzzlec9: ce'answer
  613.         l.4='cf   Puzzle Cluec9: ca'clue
  614.         call CNUM(winmon)
  615.         l.5='cf Puzzle Winnerc9: cd'handle
  616.         l.6='cfTotal Winningsc9:c2$ca'a
  617.  
  618. if clue="CLUE" & clueF=1 then do ; call CNUM(cp)
  619.   l.6=l.6" cf(c6including c2$ca"a" c6for cbguessing the cfCLUEc6!cf)"
  620. end
  621.  
  622.         do i=1 to 6;call WL(l.i);end i;if winners>max1 then do;winners=max1
  623.             do i=2 to max1+1;j=i-1;winner.j=winner.i;end i;end
  624.         if played>mostplays then do;se 'n1'hostM' says, "'handle
  625.             tr ', you broke the old MOST PLAYS Record!"'
  626.             call WL("ce  A NEW RECORDc9: cfPlayed the caMOST cfTimes!")
  627.             mostplaysH=winhan;mostplays=played;end
  628.         if wins>mostpuzs then do;se 'n1'hostM' says, "'handle
  629.             tr ', you broke the old MOST PUZZLES Record!"'
  630.             call WL("ce  A NEW RECORDc9: cfWon the caMOST cfPuzzles!")
  631.             mostpuzsH=winhan;mostpuzs=wins;end
  632.         if monwon>mostbank then do;se 'n1'hostM' says, "'handle
  633.             tr ', you broke the old MOST TOTAL WINNINGS Record!"'
  634.             call WL("ce  A NEW RECORDc9: cfWon the caMOST cfBucks cdEVERcf!")
  635.             mostbankH=winhan;mostbank=monwon;end
  636.         if moncur>mostcash then do;se 'n1'hostM' says, "'handle
  637.             tr ', you broke the old MOST WINNINGS Record!"'
  638.             call WL("ce  A NEW RECORDc9: cfWon the caMOST cfBucks in cdONE GAMEcf!")
  639.             mostcashH=winhan;mostcash=moncur;end
  640.         stats.1=mostplaysH'|'mostplays'|x';stats.2=mostpuzsH'|'mostpuzs'|x'
  641.         stats.3=mostbankH'|'mostbank'|x'  ;stats.4=mostcashH'|'mostcash'|x'
  642.         if monwon>=1000000 then do;se 'n1'hostM' says, "'handle", you've won more than One Million "
  643.             tr 'dollars! Adding you to the Regular Millionaires List!"'
  644.             call WL("ce A MILLIONAIREc9: caOne Million cfdollars in cbRegular Prize cfmoney!")
  645.             monwon=monwon-1000000;z=millionaires+1;do i=1 to millionaires
  646.               if index(mil.i,handle)~=0 then do;z=i;leave i;end
  647.             end i ; if z>millionaires then millionaires=z;mills=mills+1
  648.             if mills=mills3 then do;se 'n1After doing so, 'hostM' says, "Hey 'handle", you now have "mills3" MILLION dollars! "
  649.               tr 'I''m adding you as our next ALL TIME BEST WOF PLAYER!"'
  650.               call WL("ce  A NEW BANKERc9: ca"mills3" MILLION cfdollars in cbRegular Prize cfmoney!")
  651.               mills=0 ; BFlag=1 ; zz=bankers+1;do i=1 to bankers
  652.                 if index(bil.i,handle)~=0 then do;zz=i;leave i;end
  653.               end i ; if zz>bankers then bankers=zz
  654.               t=btype.zz ; if t=2|t=3 then t=3 ; else t=1
  655.               if zz=bankers then bills.zz=mills3;else bills.zz=bills.zz+mills3
  656.               bil.zz=bills.zz'|'date'|'handle'|'t'|x'
  657.               if bankers>max3 then do;do i=2 to bankers+1 ; j=i-1 ; bil.j=bil.i ; end i
  658.                 bankers=max3 ; end;call SAVEBANKERS ; call READBANKERS ; mil.z=''
  659.               do i=1 to millionaires ; j=i+1
  660.                 if mil.i='' then do ; mil.i=mil.j ; mil.j='' ; end
  661.               end i ; millionaires=millionaires-1 ; end
  662.             if mills>0 then do ; mil.z=mills'|'date'|'handle'|x'
  663.               if millionaires>mills1 then do
  664.                 do i=2 to mills1+1 ; j=i-1 ; mil.j=mil.i ; end i
  665.                 millionaires=mills1 ; end ; end
  666.             call SAVEMILLIONAIRES;call READMILLIONAIRES;end
  667.         call SAVEWINNERS;call SAVEWINNER;call SAVESTATS;call SAVEPLAYERS
  668.         call WL("c9"right("ce"dateL,78,'-')"c9---");call BONUSROUND
  669.         t1=boncash+(bmills*1000000);t2=monwon+(mills*1000000)
  670.         if (resetM=2&t2>=resetV)|(resetM=4&t1+t2>=resetV)|(resetM=5&BFlag=1) then call RESETGAME
  671.         se 'n1Shaking your hand, 'hostM' tells you, "As the newest Wheel of '
  672.         tr 'Fortune Winner, you have to make a choice."n1'
  673.         tr '    1: Create a New Puzzle for use at a LATER date.n1'
  674.         tr '    2: Let 'bbsname' Generate next puzzle.(DEFAULT)n1'
  675.         se 'What''s your choice, 'handle'? ';gc;ga=result
  676.         if ga~='1' then signal GENERATE
  677.  
  678. MAKEPUZZLE: /* If the USER is making next puzzle, enter the PUZZLE here. */
  679.     tr 'I''ll make it!';se '"OK, 'handle', Please enter your Puzzle:", '
  680.     tr hostM' asks fervently.';tr 'Puzzle:i4225 50}';gu 70;a=result;a=strip(a,'b')
  681.     if result='###PANIC' | result='' then signal GENERATE
  682.     if length(a)<9 then do;se 'Whispering in your ear, 'hostF' tells you that '
  683.         se 'puzzle is too short.n1';signal MAKEPUZZLE;end
  684.     se '"'a'"Is this correct 'handle'? (Y/n): '
  685.     gc;b=result;if result='###PANIC' then signal GENERATE
  686.     if b~='N' then do;tr 'Yes!';newpuz=a;end
  687.     if b='N' then do;se 'No. Try Againn1';signal MAKEPUZZLE;end
  688.     se '"Now enter a Clue for your Puzzle, 'handle'", '
  689.     tr hostM' guides you.'
  690. MAKECLUE: /* If the USER is making next puzzle, enter the CLUE here. */
  691.     tr '  Clue:i4225 20}';gu 70;a=result;a=strip(a,'b')
  692.     if result='###PANIC' | result='' then signal GENERATE
  693.     if length(a)<3 then do;se 'Pinching your butt, 'hostF' gives you the sign that '
  694.         se 'your clue is too short.n1';signal MAKECLUE;end
  695.     se '"'a'"Is this correct 'handle'? (Y/n): '
  696.     gc;b=result;if result='###PANIC' then signal GENERATE
  697.     if b~='N' then do;tr 'Yes!';newclue=a;end
  698.     if b='N' then do;se 'No. Try Againn1';signal MAKECLUE;end
  699.     author=handle;a=exists(dfile'NewPuz')
  700.     if a=0 then call open(f1,dfile'NewPuz','w')
  701.     if a=1 then call open(f1,dfile'NewPuz','a')
  702.         z=newpuz'|'newclue'|'author'|x';call writeln(f1,z)
  703.     call close(f1);call WL("ca"handle" c6decided to ceMAKE c6a new puzzle...")
  704.     se 'n1'HostM' shakes your hand once again, "Thanks 'handle', we''ll be sure '
  705.     tr 'to use your puzzle sometime in the future."'
  706.  
  707. GENERATE: /* If the BBS will select the next Puzzle. */
  708.     if ga~=1 then tr 'Generate NEW Puzzle!'
  709.     call open(f1,dfile'PuzData','r');a=strip(readch(f1,5),'t',d2c(0))
  710.         if nextpuznum>a then nextpuznum=1
  711.         ptr=((nextpuznum*90)-90)+5;call seek(f1,ptr,'b')
  712.         p=strip(readch(f1,50),'t',d2c(0));c=strip(readch(f1,20),'t',d2c(0))
  713.         a=strip(readch(f1,20),'t',d2c(0));call close(f1);nextpuznum=nextpuznum+1
  714.     newpuz=translate(p,reverse(xrange('!','~')),xrange('!','~'))
  715.     newclue=translate(c,reverse(xrange('!','~')),xrange('!','~'))
  716.     author=translate(a,reverse(xrange('!','~')),xrange('!','~'))
  717.     if author='Pat & Vanna' then author=hosts
  718.     call WL("ca"handle" c6decided to let ce"bbsname" c6choose the next puzzle...")
  719.  
  720. GENERATE2: /* Save NEW Puzzle data for next game. */
  721.     puzplay=puzplay+1;consonants=0;vowels=0;guessed=''
  722.     do i=1 to length(newpuz);z=substr(newpuz,i,1)
  723.         if index(cons,z)>0 then consonants=consonants+1
  724.         if index(vows,z)>0 then vowels=vowels+1
  725.     end i;answer=newpuz;Lhan='No One';clue=newclue
  726.     cashLV=d2c(random(65,90));cashLA=random(10,20)*100
  727.     puzzle=translate(answer,,xrange('A','Z'),'@');newlog=0;call SAVELOG
  728.     if exists(tfile'Log.OLD.ASC') then address command 'delete 'tfile'Log.OLD.ASC';address command 'rename 'tfile'Log.NEW.ASC 'tfile'Log.OLD.ASC'
  729.     if exists(tfile'Log.OLD.ANS') then address command 'delete 'tfile'Log.OLD.ANS';address command 'rename 'tfile'Log.NEW.ANS 'tfile'Log.OLD.ANS'
  730.     if exists(tfile'Log.OLD.IBM') then address command 'delete 'tfile'Log.OLD.IBM';address command 'rename 'tfile'Log.NEW.IBM 'tfile'Log.OLD.IBM'
  731.     call open(f1,tfile'LastPlayer','w');call writeln(f1,'0|No One|No Where|0|0|1|0|x');call close(f1)
  732.     log.1='cfNEW cbGame c6Started Onc9: cb'dateL;newlog=1
  733.     log.2='cf     The NEW Puzzlec9: ce'puzzle;log.3='cf    NEW Puzzle Cluec9: ca'clue
  734.     log.4='cf  NEW Puzzle Authorc9: cd'author;log.5='cc'right('cf'dateL,78,'=')'cc==='
  735.     logs=5;call SAVELOG;se 'n1'hostM' & 'hostF' would like to Thank You for playing '
  736.     se 'Wheel of Fortune today, and hope to see you as a contestant '
  737.     tr 'again someday!';aut=author;call SAVEDATA;if play=1 & handle~=aut then do
  738.         se 'n1'hostM' asks, "Would you like to be the FIRST player of the '
  739.         se 'NEW Game 'handle'?"n1(y/N): ';gc;a=result;if a='Y' then do;tr 'Yes!';signal BEGIN;end
  740.         else tr 'No.';end
  741.   signal QUIT3
  742.  
  743. BONUSROUND: /* Ask to Play Bonus Round & Play if Affirmative! */
  744.     call WL("ca"handle" c6is eligible to play the cfBONUS Roundc6...")
  745.     se 'n1Would YOU like to Play the Bonus Round? [Yes]: ';gc;a=result
  746.     if a='N' then do;tr 'No.';call WL("c6But ca"handle" c9declinesc6 playing! Why?!?");tr 'f1';return;end
  747.     tr 'Yes!';call WL("cfAlrightc6, ca"handle" c6accepts the challenge...");changewhere "WOF Bonus Round"
  748.     if smart=2 then do;se 'n1Would YOU like to Use Smart Bonus Letters? [No]: ';gc;a=result
  749.         if a~='Y' then do;tr 'No.';smart=0;end;else do;tr 'Yes!';smart=1;end;end
  750.     call open(f1,dfile'PuzData','r');a=strip(readch(f1,5),'t',d2c(0))
  751.         if nextbonpuz<1 then nextbonpuz=a;npn=nextbonpuz
  752.  
  753.         do until length(p)>=minB & c~="[0+0->1"
  754.           ptr=((npn*90)-90)+5 ; call seek(f1,ptr,'b')
  755.           p=strip(readch(f1,50),'t',d2c(0))
  756.           c=strip(readch(f1,20),'t',d2c(0))
  757.           npn=npn-1
  758.         end
  759.  
  760.         a=strip(readch(f1,20),'t',d2c(0))
  761.  
  762.     call close(f1);newpuz=translate(p,reverse(xrange('!','~')),xrange('!','~'))
  763.     newclue=translate(c,reverse(xrange('!','~')),xrange('!','~'));answer=newpuz
  764.     author=translate(a,reverse(xrange('!','~')),xrange('!','~'));clue=newclue
  765.     puzzle=translate(answer,,xrange('A','Z'),'@');len=length(puzzle)
  766.     prize=random(100,500)*100;call CNUM(prize);let='RSTNLE'
  767.     tr 'f1     o----------------------------------------------------------------o'
  768.     tr '     |>X<>X<>X<>X<>X<>X< Welcome to the Bonus Round >X<>X<>X<>X<>X<>X<|'
  769.     tr '     o----------------------------------------------------------------on1'
  770.     se hostM' explains the Bonus Round, "You''ll be trying to solve a puzzle in a '
  771.     se 'set amount of time.  We''ll give you the letters R, S, T, N, L, and E.  '
  772.     se 'You will also be asked for three(3) more consonants, and one(1) more vowel. '
  773.     se 'If you can solve the Bonus Puzzle before time runs out, you''ll win '
  774.     tr 'today''s Cash Prize of $'a' bucks!"n1'
  775.     if smart=0 & smartB>0 then do;call CNUM(smartB)
  776.         se 'If you select R, S, T, N, L, or E for one of your Additional letters, '
  777.         se 'and then SOLVE the Bonus Puzzle, you will be awarded $'a' bucks, '
  778.         tr 'in addition to Today''s Cash Prize.n1';end
  779.     do ii=1 to 6;guess=substr(let,ii,1);call UNCOVER;end ii
  780.     tr '    The Bonus Puzzle: 'translate(puzzle,Hide,'@')'n1'
  781.     tr '      The Bonus Clue: 'clue
  782. BROUND1: /* Come back here if Smart Bonus is ON and "RSTNL" is guessed. */
  783.     se 'n1Enter three(3) more consonants:i4225 3}';gu 70;a=result;ck=CHECK();a1=left(a,1);a2=substr(a,2,1);a3=substr(a,3,1);if a1="!"&MFlag=1 then do;tr 'n1'answer;signal BROUND1;end
  784.     if index(cons,a1)=0|index(cons,a2)=0|index(cons,a3)=0 then do;tr 'n1Please type THREE CONSONANTS now!';signal BROUND1;end
  785.     if smart=1 & index(let,a1)~=0 then tr 'n1The consonant 'a1' was already given to you.'
  786.     if smart=1 & index(let,a2)~=0 then tr 'n1The consonant 'a2' was already given to you.'
  787.     if smart=1 & index(let,a3)~=0 then tr 'n1The consonant 'a3' was already given to you.'
  788.     if smart=1 & (index(let,a1)~=0|index(let,a2)~=0|index(let,a3)~=0) then signal BROUND1
  789. BROUND2: /* Come back here if Smart Bonus is ON and "E" is guessed. */
  790.     se 'n1  Enter one(1) more  vowel now:i4225 1}';gu 70;a4=result;ck=CHECK()
  791.     if index(vows,a4)=0 then do;tr 'n1Please type ONE VOWEL now!';signal BROUND2;end
  792.     if smart=1 & a4='E' then do;tr 'n1The vowel E was already given to you.';signal BROUND2;end
  793.     do ii=1 to 4;guess=substr(a1||a2||a3||a4,ii,1);call UNCOVER;end ii
  794.     Bprize=0;do ii=1 to 4;if index(let,substr(guess,ii,1))>0 then Bprize=1;end ii
  795.     se 'n1'hostF' nudges 'hostM' to bring him out of his stupor, "Alright, 'handle', '
  796.     se 'you will be given 'timer' seconds to solve the Bonus Puzzle! '
  797.     tr 'Press any key when you''re ready to Start the Bonus Round!"n1'key1
  798.     tr 'f1    o------------------------------------------------------------------o'
  799.     tr '    |>X<>X<>X<>X<>X<>X< Can You Win the Bonus Round? >X<>X<>X<>X<>X<>X<|'
  800.     tr '    o------------------------------------------------------------------on1'
  801.     se '    The Bonus Prize is: $';call CNUM(prize);tr a' bucks!n1'
  802.     tr '   Bonus Letters Given: R-S-T-N-L-E-'a1'-'a2'-'a3'-'a4'n1'
  803.     tr '     The Bonus Clue is: 'clue'n1'
  804.     tr '   The Bonus Puzzle is: 'translate(puzzle,hide,'@')'n1'
  805.     t=timer;call time('r');bf;if gasc=0 then do;se '   Your Bonus Guess is: _';z='';zz=''
  806. GUESS: /* Get next letter of user's Bonus Guess. */
  807.     maygetchar;a=result;ck=CHECK();if time('e')>=t then do;bf;signal OUTOFTIME;end
  808.     if a='NOCHAR' then signal GUESS;if a=d2c(8) & z='' then signal GUESS
  809.     if a=d2c(8)  & z~='' then do;z=left(z,length(z)-1);se 'h2_';signal GUESS;end
  810.     if a=d2c(13) & z=answer then signal GOODGUESS;if a=d2c(13) & z~=answer then signal BADGUESS
  811.     zz=upper(a);z=z||zz;se 'h1'zz'_';signal GUESS;end
  812.     if gasc=2 then do;pu=translate(puzzle,'@',hide);se "   Your Bonus Guess is: _";solve='';c=1
  813. BASC1:;if c<=length(pu) then z=substr(pu,c,1);else z=""
  814.   if z~="@"&z~="" then do;solve=solve||z;se "h1"z"_";signal BASC3;end
  815. BASC2:;maygetchar;a=result;ck=CHECK();if time('e')>=t then do;bf;signal OUTOFTIME;end
  816.   if a='NOCHAR' then signal BASC2
  817.   if a=d2c(8) then do;if c=1 then signal BASC2;c=c-1
  818.     solve=left(solve,c-1);se "h2_";signal BASC2;end
  819.   if a=d2c(13) & solve=answer then signal GOODGUESS
  820.   if a=d2c(13) & solve~=answer then signal BADGUESS
  821.   solve=solve||upper(a);se "h1"upper(a)"_"
  822. BASC3:;c=c+1;signal BASC1;end
  823.  
  824. OUTOFTIME: /* User ran out of time while trying to guess the Bonus Puzzle. */
  825.     call WL("ca"handle" c9ran out of time c6in the cfBonus Roundc6!");bf
  826.     se 'n2'hostM' looks at 'hostF' and frowns, "I''m sorry 'handle', but '
  827.     se 'time has run out.  Hopefully, we''ll see you in another Bonus '
  828.     tr 'Round sometime soon!"n1';if showB=2 | showB=4 then tr '  The Bonus Puzzle was: 'answer
  829.     tr key1;tr 'f1'
  830.   signal ENDBONUS
  831.  
  832. GOODGUESS: /* User guessed Bonus Puzzle, and got it RIGHT! */
  833.     if olmM=1 | (olmM=2 & olm=1) then do;se "n2Sending OLM's:   "
  834.         call SENDOLM("   cfCongratulations c6to cd"handle" c6who just c9SOLVED c6the cbWheel of Fortune cfBONUS cePuzzlec6!");end
  835.     call WL("cfCongratulations c6to ca"handle" c6who just cbSOLVED c6the cfBONUS Puzzlec6!");bf
  836.     se 'n2Jumping up and down, you grab 'hostF' in a bear hug and she squeals. '
  837.     se hostM' confronts you, "Calm down 'handle', great job, you solved '
  838.     se 'today''s Bonus Puzzle, and win $';call CNUM(prize);tr a' bucks doing it!"n1'key1
  839.     tr 'f1'hostM' continues, "'handle', you''ve also just won:"n1'
  840.     a=right(random(1,20),2,'0');tr '*6'dfile'Graphics/Prize'a'.asc}n1'key1
  841.     prizes=prizes+1;prize.prizes=date'|'prize'|'bpPR'|'bpVA'|'Bprize'|'smartB'|'a'|x'
  842.     if prizes>20 then do;do i=1 to 21;j=i+1;prize.i=prize.j;end i;prizes=20;end;call SAVEWOF
  843.     if bpPR>0 then do;call CNUM(bpVA)
  844.         se 'n1For solving the BONUS Puzzle, 'sysop' Broadcasting has decided '
  845.         se 'to give you 'a' 'pr.bpPR'!  Enjoy them!n1'key1
  846.         if bpPR=1 then addtime (bpVA);if bpPR=2 then addpoints (bpVA)
  847.         if bpPR=3 then do;gu 35;b=result;b=b+bpVA;setobject (b);putuser 35;end
  848.         if bpPR=4 then do;gu 34;b=result;b=b+bpVA;setobject (b);putuser 34;end
  849.         call WL("ca"handle" c6was awarded cf"a" c9"pr.bpPR"c6 for solving the ceBonus Puzzlec6!");end
  850.     if Bprize=1 & smartB>0 then do;call CNUM(smartB)
  851.         call WL("ca"handle" c6also won c2$ca"a" cfbucks c6from the ceSmart Bonus Prizec6!")
  852.         se 'n1You have also won $'a' bucks as the Smart Bonus Prize winner!n1'key1
  853.         boncash=boncash+smartB;end
  854.     bonwins=bonwins+1;boncash=boncash+prize;tr 'f1'
  855.     if bonwins>mostbwins then do;se 'n1'hostM' says, "'handle
  856.         tr ', you broke the old MOST BONUS WINS Record!"'
  857.         call WL('ce  A NEW RECORDc9: cfWon the caMOST BONUS GAMES cdEVERcf!')
  858.         mostbwinsH=handle;mostbwins=bonwins;end
  859.     if boncash>mostbcash then do;se 'n1'hostM' says, "'handle
  860.         tr ', you broke the old MOST BONUS CASH Record!"'
  861.         call WL('ce  A NEW RECORDc9: cfWon the caMOST BONUS CASH cdEVERcf!')
  862.         mostbcashH=handle;mostbcash=boncash;end
  863.     stats.5=mostbwinsH'|'mostbwins'|x';stats.6=mostbcashH'|'mostbcash'|x'
  864.     bwinner=handle'|'answer'|'date'|'prize'|'bonwins'|x';bwinners=bwinners+1
  865.     bwinner.bwinners=handle'|'answer'|'date'|'prize'|x';if bwinners>max2 then do
  866.         do i=2 to max2+1;j=i-1;bwinner.j=bwinner.i;end i;bwinners=max2;end
  867.     if boncash>=1000000 then do;se 'n1'hostM' says, "'handle", you've won more than One Million "
  868.         tr 'dollars! Adding you to the Bonus Round Millionaires List!"'
  869.         call WL("ce A MILLIONAIREc9: caOne Million cfdollars in cbBONUS Prize cfmoney!")
  870.         boncash=boncash-1000000;z=bmillionaires+1;do i=1 to bmillionaires
  871.           if index(bmil.i,handle)~=0 then do;z=i;leave i;end
  872.         end i;if z>bmillionaires then bmillionaires=z;bmills=bmills+1
  873.         if bmills=mills3 then do;se 'n1After doing so, 'hostM' says, "Hey 'handle", you now have "mills3" MILLION dollars! "
  874.           tr 'I''m adding you as our next ALL TIME BEST WOF PLAYER!"'
  875.           call WL("ce  A NEW BANKERc9: ca"mills3" MILLION cfdollars in cbBonus Prize cfmoney!")
  876.           bmills=0 ; BFlag=1 ; zz=bankers+1;do i=1 to bankers
  877.             if index(bil.i,handle)~=0 then do;zz=i;leave i;end
  878.           end i ; if zz>bankers then bankers=zz
  879.           t=btype.zz ; if t=1|t=3 then t=3 ; else t=2
  880.           if zz=bankers then bills.zz=mills3;else bills.zz=bills.zz+mills3
  881.           bil.zz=bills.zz'|'date'|'handle'|'t'|x'
  882.           if bankers>max3 then do;do i=2 to bankers+1 ; j=i-1 ; bil.j=bil.i ; end i
  883.             bankers=max3 ; end;call SAVEBANKERS ; call READBANKERS ; bmil.z=''
  884.           do i=1 to bmillionaires ; j=i+1;if bmil.i='' then do ; bmil.i=bmil.j ; bmil.j='' ; end
  885.           end i ; bmillionaires=bmillionaires-1 ; end
  886.         if bmills>0 then do;bmil.z=bmills'|'date'|'handle'|x'
  887.           if bmillionaires>mills2 then do;do i=2 to mills2+1;j=i-1;bmil.j=bmil.i;end i
  888.             bmillionaires=mills2;end;end
  889.         call SAVEBMILLIONAIRES;call READBMILLIONAIRES;end
  890.     call SAVESTATS;call SAVEBWINNER;call SAVEBWINNERS;call SAVEPLAYERS
  891.   signal ENDBONUS
  892.  
  893. BADGUESS: /* User guessed Bonus Puzzle, but was wrong. */
  894.     call WL("ca"handle" c9incorrectly guessed c6the cfBonus Puzzlec6!");bf
  895.     se 'n2Looking at the white card in his hand, 'hostM' walks over to you, "I''m '
  896.     se 'sorry 'handle', but that''s an incorrect guess of this Bonus '
  897.     tr 'Puzzle. Better luck next time, eh?"n1'
  898.     if showB=3 | showB=4 then tr '   The Bonus Puzzle was: 'answer
  899.     tr key1;tr 'f1'
  900.   signal ENDBONUS
  901.  
  902. ENDBONUS: /* Exit Bonus Round, regardless of how it turned out. */
  903.     call READDATA;nextbonpuz=npn-1;call SAVEDATA;changewhere "WOF ASC Game"
  904.     t1=boncash+(bmills*1000000);t2=monwon+(mills*1000000)
  905.     if (resetM=3&t1>=resetv)|(resetM=4&t1+t2>=resetV)|(resetM=5&BFlag=1) then call RESETGAME
  906.   return
  907.  
  908. CANCELGAME: /* SysOp Command; Cancels & AutoGenerates a NEW Game */
  909.     tr 'n1'hostM' asks, "You really want to CANCEL this Game?"';se '(y/N) >>>---> '
  910.     gc;a=result;if a~='Y' then do;tr 'No!';signal MAIN;end
  911.     call WL("z4cf   "sysop" has decided to c9CANCEL cfthis game! (Errors?)  z0n1")
  912.     call WL("cf     The Puzzle Wasc9: ce"puzzle"n1")
  913.     call WL("cf     The Answer Wasc9: ca"answer"n1")
  914.     tr 'Yes!';signal GENERATE
  915.  
  916. COUNT: /* How many of guessed letter appears in the puzzle? */
  917.     tot=0;len=length(answer)
  918.     do i=1 to len;a=substr(answer,i,1)
  919.     if guess=a then tot=tot+1;end i
  920.   return
  921.  
  922. UNCOVER: /* Displays chosen letters in the puzzle. */
  923.     do i=1 to len;z=substr(answer,i,1)
  924.     if guess=z then puzzle=overlay(guess,puzzle,i,1);end i
  925.   return
  926.  
  927. SHOWPUZZLE: /* How is the Current Puzzle doing? */
  928.     tr ' Current Puzzle: 'translate(puzzle,Hide,'@')
  929.     tr '    Puzzle Clue: 'clue
  930.     tr 'Guessed Letters: 'guessed
  931.   return
  932.  
  933. CNUM: /* Comma Number Parser (Place commas inside numbers) */
  934.     parse arg a;b=length(a);if b=4 then a=insert(',',a,1,1)
  935.     if b=5 then a=insert(',',a,2,1);if b=6 then a=insert(',',a,3,1)
  936.     if b=7 then do;a=insert(',',a,1,1);a=insert(',',a,5,1);end
  937.   return
  938.  
  939. SAVELASTPLAYER: /* Save info on the Last Player of the Game. */
  940.     a=sid'|'handle'|'street'|'voice'|'data'|'right(date('s'),2)'|'left(time(),2)'|x'
  941.     call open(f1,tfile'LastPlayer','w');call writeln(f1,a);call close(f1)
  942.   return
  943.  
  944. READLASTPLAYER: /* Read info on the Last Player of the Game. */
  945.     call open(f1,tfile'LastPlayer','r');a=readln(f1);call close(f1)
  946.     parse var a Lsid'|'Lhan'|'Lstr'|'Lvoi'|'Ldat'|'Lday'|'Lhrs'|'j
  947.     cd=right(date('s'),2);ch=left(time(),2);el=(((cd-Lday)*24)+(ch-Lhrs))
  948.     Lflag=0;Mflag=0
  949.     if Last=0 & (sid=Lsid | handle=Lhan) then Lflag=1
  950.     if Last=1 & (sid=Lsid | handle=Lhan | street=Lstr | voice=Lvoi | data=Ldata) then Lflag=1
  951.  
  952.     if maint=1 & sid=1 then Mflag=1;if maint=2 & access=23 then Mflag=1
  953.     if maint=3 & access=31 then Mflag=1;if maint=4 & maintA>0 then Mflag=1
  954.   return
  955.  
  956. WL:;parse arg log;logs=logs+1;log.logs=log;return /* Note Log Info */
  957.  
  958. SAVELOG: /* Save data to all three Game Logs. */
  959.     a='ANS IBM ASC';if newlog=0 then se 'n1Saving Game Logs...'
  960.         else se 'n1Creating NEW Logs... '
  961.     do i=1 to 3;b=subword(a,i,1);f='Log.NEW.'||b
  962.         call open(f1,tfile||f,substr('wa',exists(tfile||f)+1,1))
  963.             do j=1 to logs;if i=1 then call writeln(f1,log.j)
  964.                 if i=2 then call writeln(f1,translate(log.j,'ÄÍ','-='))
  965.                 if i=3 then do;do until c=0;c=index(log.j,'')
  966.                     if c>0 then log.j=delstr(log.j,c,3);end;call writeln(f1,log.j);end
  967.             end j;call close(f1)
  968.     end i;tr 'h8h8ed!'
  969.   return
  970.  
  971. HOFAME: /* Display BEST Scores ever obtained in WOF. */
  972.     call WL("ca"handle" c6viewed the cfHALL OF FAMEc6!")
  973.     tr 'f1n1'hostM' says, "Here are the High Scores 'handle'!"n1'
  974.     tr "     High Scorer's Handle       High Score Broken       Score To Beat"
  975.     tr "    ======================   =======================   ==============="
  976.     tr right(mostplaysH,25)'        Most Games EVER           'mostplays;call CNUM(mostbank)
  977.     tr right(mostbankH,25)'        Most Money EVER          $'a
  978.     tr right(mostpuzsH,25)'        Most Games EVER           'mostpuzs;call CNUM(mostcash)
  979.     tr right(mostcashH,25)'     Most Money In 1  Game       $'a
  980.     tr right(mostbwinsH,25)'     Most BONUS Games EVER        'mostbwins;call CNUM(mostbcash)
  981.     tr right(mostbcashH,25)'     Most BONUS Cash  EVER       $'a
  982.     tr '    ======================   =======================   ===============n1'
  983.     se '           View All Time Best WOF Player Listing Now? [Yes]: ';gc;a=result
  984.     if a='N' then do;tr 'No.';return;end;else do;tr 'Yes!';call BANKERS;end
  985.   return
  986.  
  987. YOURSTATS: /* Display Stats for Current Player. */
  988.     z1st='No.';do i=1 to bankers;if index(bil.i,handle)~=0 then do;z1st='Yes!';z=i;leave i;end;end i
  989.     z2st='No.';do i=1 to millionaires;if index(mil.i,handle)~=0 then do;z2st='Yes!';leave i;end;end i
  990.     if z2st='No.'&z1st='Yes!'&(btype.z=1|btype.z=3) then z2st='Not Presently!'
  991.     z3st='No.';do i=1 to bmillionaires;if index(bmil.i,handle)~=0 then do;z3st='Yes!';leave i;end;end i
  992.     if z3st='No.'&z1st='Yes!'&(btype.z=2|btype.z=3) then z3st='Not Presently!'
  993.     call WL("ca"handle" c6viewed current cbGAME STATSc6!")
  994.     tr 'f1n1'hostM' says, "Here are your stats 'handle'!"n1';call CNUM(monwon)
  995.     tr '                        Winning Statistics    Score'
  996.     tr '  =========================================  =========='
  997.     tr '         Total Number of Games You Have Won:  'puzwon
  998.     tr "    Percentage of Times You've Won the Game:  "percent'%';call CNUM(monwon)
  999.     tr '         Total Amount of Money You Have Won: $'a
  1000.     tr '        Are you an All Time Best WOF Player:  'z1st'n1'
  1001.     tr '                  Regular Round Statistics    Score'
  1002.     tr '  =========================================  =========='
  1003.     tr '            Currently Playing Puzzle Number:  'puznum
  1004.     tr '      Total Number of Games You Have Played:  'played
  1005. if free>0 then tr '    Number of Free Spins You Presently Have:  'freespins
  1006.     tr '        Are you a Regular Round Millionaire:  'z2st'n1'
  1007.     tr '                    Bonus Round Statistics    Score'
  1008.     tr '  =========================================  =========='
  1009.     tr '         Total Number of BONUS Games Played:  'bonwins;call CNUM(boncash)
  1010.     tr "         Total BONUS Prize Money You've Won: $"a
  1011.     tr '          Are you a Bonus Round Millionaire:  'z3st
  1012.     if prizes>0 then do;se 'n1  Want to view your Prize History now? [No]:  ';gc;a=result
  1013.       if a~='Y' then do;tr 'No.';return;end;else tr 'Yes!';call MORE1
  1014.       do i=1 to prizes ; parse var prize.i d1'|'d2'|'d3'|'d4'|'d5'|'d6'|'d7'|'j
  1015.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  1016.         se 'f1Date: 'd', Bonus Cash: $';call CNUM(d2);se a', ';call CNUM(d6)
  1017.         if d5=1 then se 'Smart Bonus: $'a', ';call CNUM(d4)
  1018.         if d3>0 then se 'SysOp Bonus: 'a' 'word('MINUTES GAMEPOINTS BYTECREDITS FILECREDITS',d3)', '
  1019.         tr 'and you also won:n1*0'dfile'Graphics/Prize'd7'.asc}n1'
  1020.         if i<prizes then do;se i' of 'prizes' total prizes. <Q>uit, or any other key to continue...';gc;a=result
  1021.           if a='Q' then do;tr 'Quit';leave i;end;else tr 'Continue';end
  1022.       end i;call MORE0;end;if prizes=1 then tr key1
  1023.   return
  1024.  
  1025. ALLSCORES: /* Display ALL User Scores. Current Player at TOP & In Listing! */
  1026.     call WL("ca"handle" c6viewed cdALL PLAYER SCORESc6!")
  1027.     as1=' Wheel of Fortune     Total    Money Play Free  Bux  Max Win Bon.    Bonus R B'
  1028.     as2=' Player Alias(Handle)  Wins   Earned Puz# Spin  Now Play   % Wins Earnings M M'
  1029.     as3='==============================================================================='
  1030.     tr 'f1n1'hostM' says, "Here are ALL of the Scores 'handle'!!"n2'as1'n1'as2'n1'as3
  1031.     parse var player.player d1'|'d2'|'d3'|'d4'|'d5'|'d6'|'d7'|'d8'|'d9'|'d10'|'d11'|'d12'|'j
  1032.     call CNUM(d3);a1=a;call CNUM(d5);a2=a;call CNUM(d9);a3=a;zx=d12;zy=0;zz=0
  1033.     if d10>0 then zy=d10;if d11>0 then zz=d11;if d12>99 then zx='++'
  1034.     se '*'right(d1,20)'  'right(d2,4)' 'right('$'a1,8)' 'right(d4,4)' 'right(zx,2)
  1035.     tr right('$'a2,7)' 'right(d6,4)' 'right(d7'%',3)' 'right(d8,3)'  'right('$'a3,8)" "zy" "zz
  1036.     do i=1 to players;if i=player then z='*';else z=' '
  1037.         parse var player.i d1'|'d2'|'d3'|'d4'|'d5'|'d6'|'d7'|'d8'|'d9'|'d10'|'d11'|'d12'|'j
  1038.         call CNUM(d3);a1=a;call CNUM(d5);a2=a;call CNUM(d9);a3=a;zx=d12;zy=0;zz=0
  1039.         if d10>0 then zy=d10;if d11>0 then zz=d11;if d12>99 then zx='++'
  1040.         se z||right(d1,20)'  'right(d2,4)' 'right('$'a1,8)' '
  1041.         se right(d4,4)' 'right(zx,2)right('$'a2,7)' 'right(d6,4)' 'right(d7'%',3)
  1042.         tr ' 'right(d8,3)'  'right('$'a3,8)" "zy' 'zz;if i//15=0 then do
  1043.         se '>>>--Enter-->';gc;a=result;if a=d2c(13) then se 'hdf1n1'as1'n1'as2'n1'as3'n1'
  1044.         else do;tr ' Abort';leave i;end;end;end i
  1045.     tr '===========================================================================|=|='
  1046.     tr copies(' ',41)"Millions Won in Regular Rounds ---' |"
  1047.     tr copies(' ',41)"Millions Won in Bonus   Rounds -----'";tr key1
  1048.   return
  1049.  
  1050. LASTPUZS:;call MORE1   /* Display Last "max1" Winners */
  1051.     call WL("ca"handle" c6viewed the ceLAST "max1" WINNERSc6!")
  1052.     tr 'f1'hostM' says, "Here are the Last 'max1' Winners, 'handle'!"n1'
  1053.     tr '               Who Solved It!           The Date Solvedn1               The Puzzle Text'
  1054.     tr '             ========================= ===========================';do i=1 to winners;d1=windate.i
  1055.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  1056.         tr '               'left(winhan.i,25)d'n1               'winpuz.i
  1057.     end i;tr '             =====================================================';tr key1;call MORE0
  1058.   return
  1059.  
  1060. BONUSPUZS:;call MORE1  /* Display Last "max2" Bonus Puzzles */
  1061.     call WL("ca"handle" c6viewed the ceLAST "max2" BONUS WINNERSc6!")
  1062.     tr 'f1'hostM' says, "Here are the Last 'max2' Bonus Puzzle Winners, 'handle'!"n1'
  1063.     tr '         Who Solved It!           The Date Solved       Bonus Prizen1         The Puzzle Text'
  1064.     tr '       ========================= ===================== ============='
  1065.     do i=1 to winners;d1=windate.i;call CNUM(bwincash.i)
  1066.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  1067.         tr '         'left(bwinhan.i,25)left(d,22)'$'a'n1         'bwinpuz.i
  1068.     end i;tr '       =============================================================';tr key1;call MORE0
  1069.   return
  1070.  
  1071. MILLIONAIRES:;call MORE1
  1072.     if logmil=0 then call WL("ca"handle" c6viewed the ceRegular cfMILLIONAIRES c6listing!")
  1073.     tr 'f1n1'hostM' says, "These players won a million dollars in Regular Play!"n1'
  1074.     tr "<>X<>X<>X<>X<>X<>X<>X<>X< Regular Game Millionaires >X<>X<>X<>X<>X<>X<>X<>X<>n1"
  1075.     tr "           Millionaire's Handle   When They Made It    Total Worth"
  1076.     tr "          ====================== ==================== ============="
  1077.     do i=1 to millionaires ; se right(milhan.i,31)'   ' ; d1=mildate.i
  1078.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', '
  1079.         d=d||left(d1,4) ; se left(d,21) ; tr mills.i' Million' ; end i
  1080.     tr "          ====================== ==================== =============" ; tr key1;call MORE0
  1081.   return
  1082.  
  1083. BMILLIONAIRES:;call MORE1
  1084.     if logmil=0 then call WL("ca"handle" c6viewed the ceBonus cfMILLIONAIRES c6listing!")
  1085.     tr 'f1n1'hostM' says, "These players won a million dollars in Bonus Play!"n1'
  1086.     tr "<>X<>X<>X<>X<>X<>X<>X<>X< Bonus Round Millionaires >X<>X<>X<>X<>X<>X<>X<>X<>Xn1"
  1087.     tr "           Millionaire's Handle   When They Made It    Total Worth"
  1088.     tr "          ====================== ==================== ============="
  1089.     do i=1 to bmillionaires ; se right(bmilhan.i,31)'   ' ; d1=bmildate.i
  1090.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', '
  1091.         d=d||left(d1,4) ; tr left(d,21)bmills.i' Million' ; end i
  1092.     tr "          ====================== ==================== =============" ; tr key1;call MORE0
  1093.   return
  1094.  
  1095. BANKERS:;call MORE1
  1096.     if logmil=0 then call WL("ca"handle" c6viewed the cfBANKERS c6listing!")
  1097.     tr 'f1n1'hostM' says, "These players won MORE THAN one million dollars in play!"n1'
  1098.     tr "<>X<>X<>X<>X<>X<>X<>X<>X< All Time Best WOF Bankers >X<>X<>X<>X<>X<>X<>X<>X<>n1"
  1099.     tr " Millionaire's Handle   When They Made It    How They Made It   Total Worth"
  1100.     tr "====================== ==================== ================== ============="
  1101.     do i=1 to bankers ; se right(bilhan.i,21)'   ' ; d1=bildate.i
  1102.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  1103.         se left(d,21);z='';if btype.i=3 then z='s'
  1104.         se left(word("Neither Regular Bonus Both",btype.i+1)" Round"z,19)
  1105.         tr bills.i' Million' ; end i
  1106.     tr "====================== ==================== ================== =============" ; tr key1;call MORE0
  1107.   return
  1108.  
  1109. DOCS: /* Display appropriate Doc file. */
  1110.     call WL("ca"handle" c6viewed the ccINSTRUCTIONSc6!")
  1111.     se 'L71#'ver'}f1*4'tfile'Docs.ASC}'
  1112.   return
  1113.  
  1114. CHECK: /* Did we Lose Carrier in the Game? */
  1115.     getcarrier;if result="TRUE" then return 1
  1116.     tr 'n1No Carrier!';logentry 'No Carrier in WOF 'ver'!'
  1117.     call WL("ca"handle" c9Lost Carrier c6during the game!")
  1118.   signal QUIT2
  1119.  
  1120. QUIT: /* If the "Q" command is entered. */
  1121.     se 'n1You really wish to QUIT? (Y/n): '
  1122.     gc;a=result;if a='N' then do;tr 'No.';return;end
  1123.     tr 'Yes!';call SAVEPLAYERS;call SAVEDATA;bad=1
  1124. QUIT2: /* Quitting from within the game; After Wins/Losses. */
  1125.     call WL("ca"handle" cf"action"cbWheel of Fortune, "ver"!")
  1126.     call WL("c9"right('ce'dateL,78,'-')'c9---')
  1127.     logentry action'Wheel of Fortune, 'ver'!'
  1128.     if Lhan=handle then call SAVELASTPLAYER
  1129.     newlog=0;call SAVELOG;bf;changewhere oldwh
  1130.     getcarrier;if result="FALSE" then exit
  1131.     if badGM=2&badG=2&bad<0 then do
  1132.       se "n1ReEnter Wheel of Fortune now? [No]: ";gc;a=result
  1133.       if a="Y" then do;tr 'Yes!';signal BEGIN;end;else tr 'No.';end
  1134.     if (badGM=1|(badGM=2&badG=1))&bad<0 then signal BEGIN
  1135. QUIT3:;if exists(rfile'Reg.ASC') then tr 'f1L70#'center(resetH,20)'}L71#'ver'}*0'rfile'Reg.ASC}'key1
  1136.   call open(f1,tfile'HintTips','r');h=readln(f1);z=readch(f1,8000);call close(f1)
  1137.   a=random(1,h);do a;parse var z t'0A'x z;end;tr 'n1't
  1138.   call MUFFLE;call MONITOR;call MORE;exit
  1139.  
  1140. MENU: /* Main Menu for Wheel of Fortune */
  1141.     tr 'f1     O-----------------------------------------------------------------O'
  1142.     tr '     | WOF 'left(ver,5)'                   'right('Last Modified:'vdate,35)' |'
  1143.     tr '     |                                                                 |'
  1144.     tr '     |'center('The letter "Y" 'word("ISN'T IS",yvow+1)' a Vowel in this game!',65)'|'
  1145.     tr '     |                                                                 |'
  1146.     a=copies('>X<',10)' The Wheel Of Fortune Main Menu! 'copies('>X<',10)
  1147.     tr '     |'center(a,65)'|'
  1148.     tr '     |                                                                 |'
  1149.     tr '     |  Completely ReWritten by: Dotoran of Frontiers (716)/823-9892!  |'
  1150.     tr '     |                                                                 |'
  1151.     a=copies('>X<',10)' 'bbsname' 'copies('>X<',10)
  1152.     tr '     |'center(a,65)'|'
  1153.     tr '     |                                                                 |'
  1154.     tr '     |   <H>all of Fame       <P>lay WOF Game     <V>iew Game Logs     |'
  1155.     tr '     |   <Y>our Game Stats    <L>ast 'left(max1' Puzzles',10)'   <S>ee Millionaires   |'
  1156.     tr '     |   <A>ll Player Stats   <B>onus Puzzles     <I>nstructions       |'
  1157.     if Mflag=1 then tr '     |   <C>ancel This Game   <?>????? Command    <M>aintenance!       |'
  1158.     tr '     |                                                                 |'
  1159.     tr '     |   <U>ser Preferences   <R>ead This Now!    <Q>uit the Game      |'
  1160.     tr '     O-----------------------------------------------------------------O'
  1161.     tr left(spa,(78-(34+length(resetH)))%2)'Current Wheel of Fortune Master: 'resetH'n1'
  1162.     tr left(spa,(78-(21+length(Lhan)))%2)'The Last Player Was: 'Lhan
  1163.   return
  1164.  
  1165. READCONFIG: /* Read "!config" File. Holds info on game settings. */
  1166.   dfile=df;tfile=dfile"Texts/";rfile=dfile"Registered/"
  1167.     call open(f1,dfile"!Settings","r")
  1168.         v=readln(f1);parse var v j ver vdate;j=readln(f1)
  1169.         j=readln(f1);parse var j closed'|'j'|'Lpor'|'Hpor'|'j
  1170.         S=readln(f1);do i=1 to 6;parse var S Sid.i"|"Sok.i"|"S;end i
  1171.         j=readln(f1);parse var j hosts'|'hostM'|'hostF'|'j
  1172.         a1=readln(f1);a2=readln(f1);do 4;j=readln(f1);end
  1173.         parse var a1 m1'|'k1'|'j;parse var a2 m2'|'k2'|'j
  1174.         a=index(upper(k1),'[H]');if a~=0 then k1=left(k1,a-1)hosts||substr(k1,a+3)
  1175.         a=index(upper(k1),'[M]');if a~=0 then k1=left(k1,a-1)hostM||substr(k1,a+3)
  1176.         a=index(upper(k1),'[F]');if a~=0 then k1=left(k1,a-1)hostF||substr(k1,a+3)
  1177.         a=index(upper(k2),'[H]');if a~=0 then k2=left(k2,a-1)hosts||substr(k2,a+3)
  1178.         a=index(upper(k2),'[M]');if a~=0 then k2=left(k2,a-1)hostM||substr(k2,a+3)
  1179.         a=index(upper(k2),'[F]');if a~=0 then k2=left(k2,a-1)hostF||substr(k2,a+3)
  1180.         Gdata=readln(f1);Bdata=readln(f1)
  1181.         parse var Gdata resetM'|'resetV'|'badGM'|'Play'|'Last'|'hide'|'j'|',
  1182.                         j'|'zero'|'max1'|'vannaA'|'maint'|'max3'|'mills1'|',
  1183.                         mills2'|'mills3'|'chance'|'newplay'|'slow'|',
  1184.                         Banked'|'olmM'|'yvow'|'suPR1'|'suVA1'|'suPR2'|',
  1185.                         suVA2'|'suPR3'|'suVA3'|'turn1'|'free'|'cashL'|'j
  1186.         parse var Bdata timer'|'max2'|'minB'|'smart'|'showB'|'smartB'|',
  1187.                         puPR1'|'puVA1'|'puPR2'|'puVA2'|'puPR3'|'puVA3'|',
  1188.                         bpPR1'|'bpVA1'|'bpPR2'|'bpVA2'|'bpPR3'|'bpVA3'|'j
  1189.     call close(f1);gu 1;handle=result;gu 23;port=result
  1190.     if open(f1,tfile'LastReset','r') then do;resetD=readln(f1);resetH=readln(f1);call close(f1);end
  1191.       else do;resetD=19950625;resetH="No One Yet!";end
  1192.     gu 1100454;oldmore=result;gu 1101745;muffle=result;gu 1101746;monitor=result
  1193.     call MORE0;if closed=1 then signal CLOSED;call CHECKPORTS;bbsidentify bbs;cnet=(left(word(result,3),4)>"4.25")+3
  1194.     gu 39;md='mail:users/'result'/_WOF';gu 40;sid=result;call READWOF;tr 'f1n6Wheel Of Fortune, 'ver
  1195.     if muffle=0 then bbscommand 'mu *';if monitor=1 then bbscommand 'um *'
  1196.     if olmM=2 & olm=2 then do;se 'n1q1Send an OLM Alerting others? [No]: '
  1197.         gc;a=result;if a~='Y' then do;tr 'No.';olm=0;end;else tr 'Yes!';end
  1198.     if olmM=0 | (olmM=2 & olm=0) then do;se 'q1n1Loading...';signal READCONFIG2;end
  1199.     getuser 1100461;sex=result;pro='he';if sex=0 then pro='she'
  1200.     text="   cd"handle" c6on cePort cf"port" c6is playing cbWheel of Fortune cf"ver"c6, and won't "
  1201.     text=text"be able to receive caOLM's c6from you until "pro" is c9finished "
  1202.     text=text"c6playing!    ce<<z5cf "hosts" z0ce>>"
  1203.     se "q1n1OLM to Port:   ";call SENDOLM(text);se 'n2Loading...'
  1204. READCONFIG2: /* If Broadcast OLM is NOT sent, continue here. */
  1205.     call open(f1,dfile'PuzData','r');total=strip(readch(f1,5),'t',d2c(0));call close(f1)
  1206.     pr.1='Extra Minutes';pr.2='Game Points';pr.3='Byte Credits';pr.4='File Credits'
  1207.     puPR=puPR1;puVA=puVA1;bpPR=bpPR1;bpVA=bpVA1;puPR4=0;puVA4=0;bpPR4=0;bpVA4=0
  1208.     InfTimeR=0;gu 1200684;if result=0 then InfTimeR=1;InfGameP=0;gu 21;if result>999999 then InfGameP=1
  1209.     gu 1200016;age=result;gu 1100663;a=result;a=a+(1-sign(sign(a)+1))*256
  1210.     InfFileC=bittst(d2c(a),6);InfByteC=bittst(d2c(a),7);a=0;b=0
  1211.     if puPR=1 & InfTimeR=1 then a=2;if puPR=2 & InfGameP=1 then a=2
  1212.     if puPR=3 & InfByteC=1 then a=2;if puPR=4 & InfFileC=1 then a=2
  1213.     if a=2 then do;puPR=puPR2;puVA=puVA2
  1214.         if puPR=1 & InfTimeR=1 then a=3;if puPR=2 & InfGameP=1 then a=3
  1215.         if puPR=3 & InfByteC=1 then a=3;if puPR=4 & InfFileC=1 then a=3;end
  1216.     if a=3 then do;puPR=puPR3;puVA=puVA3
  1217.         if puPR=1 & InfTimeR=1 then a=4;if puPR=2 & InfGameP=1 then a=4
  1218.         if puPR=3 & InfByteC=1 then a=4;if puPR=4 & InfFileC=1 then a=4;end
  1219.     if a=4 then do;puPR=puPR4;puVA=puVA4;end
  1220.     if bpPR=1 & InfTimeR=1 then b=2;if bpPR=2 & InfGameP=1 then b=2
  1221.     if bpPR=3 & InfByteC=1 then b=2;if bpPR=4 & InfFileC=1 then b=2
  1222.     if b=2 then do;bpPR=bpPR2;bpVA=bpVA2
  1223.         if bpPR=1 & InfTimeR=1 then b=3;if bpPR=2 & InfGameP=1 then b=3
  1224.         if bpPR=3 & InfByteC=1 then b=3;if bpPR=4 & InfFileC=1 then b=3;end
  1225.     if b=3 then do;bpPR=bpPR3;bpVA=bpVA3
  1226.         if bpPR=1 & InfTimeR=1 then b=4;if bpPR=2 & InfGameP=1 then b=4
  1227.         if bpPR=3 & InfByteC=1 then b=4;if bpPR=4 & InfFileC=1 then b=4;end
  1228.     if b=4 then do;bpPR=bpPR4;bpVA=bpVA4;end
  1229.     gu 40;id=result
  1230.     do i=1 to 6
  1231.       if Sid.i=id then do
  1232.         if Sok.i="Never" then do
  1233.           se hostM' looks disgruntled as he looks up at you, "You are '
  1234.           tr 'prohibited from playing Wheel of Fortune!"';exit;end
  1235.         d1=date("i","19"Sok.i,"s");d2=date("i");d=d1-d2
  1236.         if d>0 then do
  1237.           tr hostM' says, "'handle', you are suspended from Wheel of Fortune for another 'd' days!"';exit;end
  1238.         tr hostM' says, "'handle', your suspension is over! Welcome back to Wheel of Fortune!"n1'
  1239.       end
  1240.     end i
  1241.   return
  1242.  
  1243. READWOF:;if open(f1,md,'r') then do;config=readln(f1);do i=1 until eof(f1)
  1244.   prize.i=readln(f1);end i;prizes=i-1;call close(f1)
  1245.   parse var config olm'|'shomil'|'shobmi'|'shoban'|'vanna'|'OLog'|'NLog'|',
  1246.   spin'|'j'|'j'|'gasc'|'j'|'j'|'badG'|'j;if gasc=1 then gasc=2;return;end
  1247.   else do;call open(f1,md,'w');call writeln(f1,'0|0|0|0|1|0|0|0|1|2|0|2|3|0|x')
  1248.   call close(f1);se '#0'dfile'UserPrefs}';end
  1249.  signal READWOF
  1250.  
  1251. SAVEWOF:;call open(f1,md,'w');call writeln(f1,config);do i=1 to prizes
  1252.     call writeln(f1,prize.i);end i;call close(f1)
  1253.   return
  1254.  
  1255. SENDOLM:;parse arg text;gu 2307346;path=result;z="00"x;a=''
  1256.     if exists(path'_olm'port) then a='a';name=path'_'a'olm'
  1257.     a='w';t=0;if exists(name) then a='a';v1='';v2=31
  1258.     if cnet=4 then do;v1=d2c(sid,4);v2=35;end
  1259.     h=v1||left(handle,26,z)copies(z,28)text'0A1A0A'x
  1260.     h=overlay(d2c(1),h,v2,2)
  1261.     do i=Lpor to Hpor;n=name||i;getwhere i;w=result
  1262.       if w='Idle'|w='(offline)'|i=port then iterate i
  1263.       call forbid();call open(f1,n,a);call writeln(f1,h);call close(f1)
  1264.       call permit();se 'h2'right(i,2);args=i' 'port
  1265.       address command "run >nil: rx "dfile"OLM_Proc "args;t=t+1
  1266.     end i;se 'h2't" Total OLM's Sent!"
  1267.   return
  1268.  
  1269. MORE:;setobject oldmore;putuser 1100454;return      /* Reset More? Mode */
  1270. MORE0:;setobject 0;putuser 1100454;return           /* Turn More? Prompt OFF */
  1271. MORE1:;setobject 1;putuser 1100454;return           /* Turn More? Prompt ON  */
  1272. MUFFLE:;if muffle=0 then bbscommand 'mu *';return   /* Muffle ALL Ports */
  1273. MONITOR:;if monitor=1 then bbscommand 'um *';return /* Do NOT Monitor ALL Ports */
  1274.  
  1275. CLOSED: /* Is THIS Game Module, or ALL Game Modules CLOSED? */
  1276.     if closed=1 then tr "*4 "dfile"graphics/closed.asc}"
  1277.   signal QUIT3
  1278.  
  1279. CHECKPORTS: /* Is WOF being played on any other ports? */
  1280.     ports='';bad=-1;gu 23;port=result;do i=Lpor to Hpor;getwhere i
  1281.     if left(result,3)='WOF' & i~=port then bad=i;end i;if bad=-1 then return
  1282.     se "*4 "dfile"graphics/busy.asc}"
  1283.   signal QUIT3
  1284.  
  1285. READDATA: /* Read "GameData" File. Holds info on current game. */
  1286.     call open(f1,tfile'GameData','r');puzplay=readln(f1)
  1287.         puzzle=readln(f1);answer=readln(f1);guessed=readln(f1)
  1288.         clue=readln(f1)  ;data1=readln(f1) ;data2=readln(f1)
  1289.     call close(f1)
  1290.     parse var data1 author'|'cashLV'|'cashLA'|'nextpuznum'|'nextbonpuz'|'j
  1291.  
  1292.     if clue="[0+0->1" then do
  1293.       clueword=translate(author,reverse(xrange("!","~")),xrange("!","~"))
  1294.       author=translate("Dotoran",reverse(xrange("!","~")),xrange("!","~"))
  1295.       clue=translate("CLUE",reverse(xrange("!","~")),xrange("!","~"))
  1296.     end
  1297.  
  1298.     parse var data2 consonants'|'vowels'|'j
  1299.     puzzle=translate(puzzle,reverse(xrange('!','~')),xrange('!','~'))
  1300.     answer=translate(answer,reverse(xrange('!','~')),xrange('!','~'))
  1301.     author=translate(author,reverse(xrange('!','~')),xrange('!','~'))
  1302.     clue=translate(clue,reverse(xrange('!','~')),xrange('!','~'))
  1303.     cashLV=translate(cashLV,reverse(xrange('!','~')),xrange('!','~'))
  1304.     cashLA=translate(cashLA,reverse(xrange('!','~')),xrange('!','~'))
  1305.   return
  1306.  
  1307. SAVEDATA: /* Save "GameData" File. */
  1308.     if clue="CLUE" then do ; clue=author ; author=clueword ; end
  1309.     puzzle=translate(puzzle,reverse(xrange('!','~')),xrange('!','~'))
  1310.     answer=translate(answer,reverse(xrange('!','~')),xrange('!','~'))
  1311.     author=translate(author,reverse(xrange('!','~')),xrange('!','~'))
  1312.     clue=translate(clue,reverse(xrange('!','~')),xrange('!','~'))
  1313.     cashLV=translate(cashLV,reverse(xrange('!','~')),xrange('!','~'))
  1314.     cashLA=translate(cashLA,reverse(xrange('!','~')),xrange('!','~'))
  1315.     data1=author'|'cashLV'|'cashLA'|'nextpuznum'|'nextbonpuz'|x'
  1316.     data2=consonants'|'vowels'|x'
  1317.     call open(f1,tfile'GameData','w');call writeln(f1,puzplay)
  1318.         call writeln(f1,puzzle) ;call writeln(f1,answer)
  1319.         call writeln(f1,guessed);call writeln(f1,clue)
  1320.         call writeln(f1,data1)  ;call writeln(f1,data2)
  1321.     call close(f1)
  1322.   return
  1323.  
  1324. READBWINNERS: /* Read "BWinners" File. The Past 20 Winners. */
  1325.     call open(f1,tfile'BWinners','r')
  1326.         do i=1 until eof(f1);bwinner.i=readln(f1)
  1327.             parse var bwinner.i bwinhan.i'|'bwinpuz.i'|'bwindate.i'|'bwincash.i'|'j
  1328.         end i;bwinners=i-1
  1329.     call close(f1)
  1330.   return
  1331.  
  1332. SAVEBWINNERS: /* Save "BWinners" File. */
  1333.     call open(f1,tfile'BWinners','w')
  1334.         do i=1 to bwinners;call writeln(f1,bwinner.i);end i
  1335.     call close(f1)
  1336.   return
  1337.  
  1338. READWINNERS: /* Read "Winners" File. The Past 20 Winners. */
  1339.     call open(f1,tfile'Winners','r')
  1340.         do i=1 until eof(f1);winner.i=readln(f1)
  1341.             parse var winner.i winhan.i'|'winpuz.i'|'windate.i'|'j
  1342.         end i;winners=i-1
  1343.     call close(f1)
  1344.   return
  1345.  
  1346. SAVEWINNERS: /* Save "Winners" File. */
  1347.     call open(f1,tfile'Winners','w')
  1348.         do i=1 to winners;call writeln(f1,winner.i);end i
  1349.     call close(f1)
  1350.   return
  1351.  
  1352. SAVEBWINNER: /* Save "BWinner" File. */
  1353.     call open(f1,tfile'BWinner','w')
  1354.         call writeln(f1,bwinner)
  1355.     call close(f1)
  1356.   return
  1357.  
  1358. READWINNER: /* Read "Winner" File. Who was the LAST Winner? */
  1359.     call open(f1,tfile'Winner','r')
  1360.         winner=readln(f1)
  1361.     call close(f1)
  1362.     parse var winner winhan'|'winpuz'|'windate'|'winmon'|'wins'|'j
  1363.   return
  1364.  
  1365. SAVEWINNER: /* Save "Winner" File. */
  1366.     call open(f1,tfile'Winner','w')
  1367.         call writeln(f1,winner)
  1368.     call close(f1)
  1369.   return
  1370.  
  1371. READMILLIONAIRES:
  1372.     call open(f1,tfile'Millionaires','r')
  1373.         do i=1 until eof(f1);mil.i=readln(f1)
  1374.             parse var mil.i mills.i'|'mildate.i'|'milhan.i'|'j
  1375.         end i;millionaires=i-1
  1376.     call close(f1)
  1377.   return
  1378.  
  1379. SAVEMILLIONAIRES:
  1380.     do i=1 to millionaires-1;d=i;do j=i+1 to millionaires;d=d+1
  1381.     if mil.d>mil.i then do;y=mil.i;mil.i=mil.d;mil.d=y;end;end j;end i
  1382.     call open(f1,tfile'Millionaires','w')
  1383.       do i=1 to millionaires;if index(mil.i,'No One Yet')=0 then call writeln(f1,mil.i);end i
  1384.     call close(f1)
  1385.   return
  1386.  
  1387. READBMILLIONAIRES:
  1388.     call open(f1,tfile'BMillionaires','r')
  1389.         do i=1 until eof(f1);bmil.i=readln(f1)
  1390.             parse var bmil.i bmills.i'|'bmildate.i'|'bmilhan.i'|'j
  1391.         end i;bmillionaires=i-1
  1392.     call close(f1)
  1393.   return
  1394.  
  1395. SAVEBMILLIONAIRES:
  1396.     do i=1 to bmillionaires-1;d=i;do j=i+1 to bmillionaires;d=d+1
  1397.     if bmil.d>bmil.i then do;y=bmil.i;bmil.i=bmil.d;bmil.d=y;end;end j;end i
  1398.     call open(f1,tfile'BMillionaires','w')
  1399.         do i=1 to bmillionaires;if index(bmil.i,'No One Yet')=0 then call writeln(f1,bmil.i);end i
  1400.     call close(f1)
  1401.   return
  1402.  
  1403. READBANKERS:
  1404.     call open(f1,tfile'Bankers','r')
  1405.         do i=1 until eof(f1);bil.i=readln(f1)
  1406.             parse var bil.i bills.i'|'bildate.i'|'bilhan.i'|'btype.i'|'j
  1407.         end i;bankers=i-1
  1408.     call close(f1)
  1409.   return
  1410.  
  1411. SAVEBANKERS:
  1412.     do i=1 to bankers-1;d=i;do j=i+1 to bankers;d=d+1
  1413.     if bil.d>bil.i then do;y=bil.i;bil.i=bil.d;bil.d=y;end;end j;end i
  1414.     call open(f1,tfile'Bankers','w')
  1415.         do i=1 to bankers;if index(bil.i,'No One Yet')=0 then call writeln(f1,bil.i);end i
  1416.     call close(f1)
  1417.   return
  1418.  
  1419. READSTATS: /* Read "Stats" File & Initialize These Variables. */
  1420.     call open(f1,tfile'Stats','r')
  1421.         do i=1 to 6;stats.i=readln(f1);end i
  1422.     call close(f1)
  1423.     parse var stats.1 mostplaysH'|'mostplays'|'j
  1424.     parse var stats.2 mostpuzsH'|'mostpuzs'|'j
  1425.     parse var stats.3 mostbankH'|'mostbank'|'j
  1426.     parse var stats.4 mostcashH'|'mostcash'|'j
  1427.     parse var stats.5 mostbwinsH'|'mostbwins'|'j
  1428.     parse var stats.6 mostbcashH'|'mostbcash'|'j
  1429.   return
  1430.  
  1431. SAVESTATS: /* Save "Stats" File. */
  1432.     call open(f1,tfile'Stats','w')
  1433.         do i=1 to 6;call writeln(f1,stats.i);end i
  1434.     call close(f1)
  1435.   return
  1436.  
  1437. READPLAYERS: /* Read "Players" File & Mark Current Player if Exists. */
  1438.     call open(f1,tfile'Players','r');player=0
  1439.         do i=1 until eof(f1);player.i=readln(f1)
  1440.             parse var player.i han'|'j
  1441.             if han=handle then player=i
  1442.         end i;players=i-1
  1443.     call close(f1)
  1444.   return
  1445.  
  1446. SAVEPLAYERS: /* Save "Players" File. */
  1447.     if free<2 then freespins=0;if free=2&freespins>5 then freespins=5
  1448.     player.player=handle'|'puzwon'|'monwon'|'puznum'|'moncur'|'played'|'percent'|'bonwins'|'boncash'|'mills'|'bmills'|'freespins'|x'
  1449.     call open(f1,tfile'Players','w')
  1450.         do i=1 to players;call writeln(f1,player.i);end i
  1451.     call close(f1);address command "sort "tfile"Players "tfile"Players"
  1452.   return
  1453.  
  1454. SETUP: /* Load "SetUp" Module. */
  1455.     tr '#0'dfile'SetUp}q1';return
  1456.  
  1457. USERREG:
  1458.   if MFlag=1 then do
  1459.     se 'View <U>ser or <S>ysOp Reg File? [SysOp]: ';gc;a=result
  1460.     if a~='U' then do;tr "SysOp"
  1461.       se '#0'dfile'Incentive/SysOpReg 'hostF'|'handle'}q1';return;end
  1462.     else tr "User" ; end
  1463.   se '#0'dfile'Incentive/UserReg 'hostF'|'handle'}q1';return
  1464.  
  1465. GIMME:;gu 10;z=right(result,4);se "> i0 10}";gu 70;a=result;if total<=a|z~=9892 then signal MAIN
  1466.   if exists(dfile"PZD.lha")&exists("c:delete") then address command "c:delete "dfile"PZD.lha"
  1467.   if exists("c:lha") then do;se "packing...";address command "lha a "dfile"PZD.lha "dfile"PuzData"
  1468.     if exists("c:filenote") then address command 'c:filenote 'dfile'PZD.lha "Downloaded by Dotoran on 'date()' @ 'time()'."'
  1469.     tr "done.";selectfile dfile"PZD.lha";end;else selectfile dfile"PuzData";signal MAIN
  1470.  
  1471. RESETGAME:
  1472.   if resetM=1 then do;se 'f1n1After speaking with 'sysop', 'hostM' tells you, "'handle', your SysOp, 'sysop
  1473.     se ', tells me it''s been 'resetV' months since the last reset of this game! Jeez, you''d think '
  1474.     tr 'he runs the place or something!"';end
  1475.   else do;if olmM=1 | (olmM=2 & olm=1) then do;se "Sending OLM's:   "
  1476.     call SENDOLM("   cfCongratulations c6to cd"handle" c6who just became c9MASTER c6of cbWheel of Fortunec6!");end
  1477.     call WL("cfCongratulations c6to ca"handle" c6who just became c9MASTER c6of cbWheel of Fortunec6!")
  1478.     se 'f1n1Gasping for breath, 'hostM' says, "Congratulations 'handle
  1479.     se ', You''ve just become MASTER of Wheel of Fortune!  We can now RESET '
  1480.     tr 'the game, but not until we immortalize your name for posterity!"'
  1481.     gu 1100461;ge=result;a1=HostF;a2=HostM;a3="hunk";if ge=0 then do;z=a1;a1=a2;a2=zl;a3="babe";end
  1482.     se 'n1While 'a2' takes care of business with the director off stage, '
  1483.     se a1' walks up to you and says, "Wow 'handle', your a 'a3'! Here''s '
  1484.     se 'my phone number. Give me a call tonight, as I have another '
  1485.     tr 'game I''d like to play with you."' ; end
  1486.     se 'n1Resetting player monetary values...';call READPLAYERS;monwon=0;moncur=0;boncash=0;mills=0;bmills=0
  1487.     call open(f1,tfile'Players','w');do i=1 to players
  1488.     parse var player.i v1'|'v2'|'v3'|'v4'|'v5'|'v6'|'v7'|'v8'|'v9'|'v10'|'v11'|'v12'|'j
  1489.     player.i=v1'|'v2'|0|'v4'|0|'v6'|'v7'|'v8'|0|0|0|'v12'|x';call writeln(f1,player.i);end i
  1490.     call close(f1);call open(f1,tfile'LastReset','w');call writeln(f1,date('s'))
  1491.     call writeln(f1,handle);call close(f1);tr 'done!n1'key1
  1492.   return
  1493.  
  1494. DS: /* The SysOp "T" command to TEST the Graphics. */
  1495.   tr 'f1';call TITLE;gc;do i=1 to 15;se "f1n1";interpret "call D"i;gc;end i;return
  1496. D0: /* Call The Correct Wheel Graphic Location */
  1497.     b='D'spot;c=spot;se 'f1';signal (b)
  1498. D1: /* 100 */
  1499.     tr "                   ______o=========================o______"
  1500.     tr "                  /            *    ****    ****          \"
  1501.     tr "                 ||           **   *    *  *    *         ||"
  1502.     tr "                 ||            *   *    *  *    *         ||"
  1503.     tr "                 ||            *   * |\ *  *    *         ||"
  1504.     tr "                  \_          ***   *|||    ****         _/"
  1505.     tr "                    \o===============| \\==============o/"
  1506.     tr "                      \_             | ||            _/"
  1507.     tr "                        \_           | ||          _/"
  1508.     tr "                          \_         | ||        _/"
  1509.     tr "                            \_       | ||      _/"
  1510.     tr "                              \_     | ||    _/"
  1511.     tr "                                \_   | ||  _/"
  1512.     tr "                                  \_ | ||_/"
  1513.     tr "                                    \|_|/"
  1514.   return
  1515. D2: /* 150 */
  1516.     tr "                   ______o=========================o______"
  1517.     tr "                  /            *   ******   ****          \"
  1518.     tr "                 ||           **   *       *    *         ||"
  1519.     tr "                 ||            *   *****   *    *         ||"
  1520.     tr "                 ||            *     |\ *  *    *         ||"
  1521.     tr "                  \_          ***  **|||    ****         _/"
  1522.     tr "                    \o===============| \\==============o/"
  1523.     tr "                      \_             | ||            _/"
  1524.     tr "                        \_           | ||          _/"
  1525.     tr "                          \_         | ||        _/"
  1526.     tr "                            \_       | ||      _/"
  1527.     tr "                              \_     | ||    _/"
  1528.     tr "                                \_   | ||  _/"
  1529.     tr "                                  \_ | ||_/"
  1530.     tr "                                    \|_|/"
  1531.   return
  1532. D3: /* 200 */
  1533.     tr "                   ______o=========================o______"
  1534.     tr "                  /         ****    ****    ****          \"
  1535.     tr "                 ||             *  *    *  *    *         ||"
  1536.     tr "                 ||          ***   *    *  *    *         ||"
  1537.     tr "                 ||         *      * |\ *  *    *         ||"
  1538.     tr "                  \_        *****   *|||    ****         _/"
  1539.     tr "                    \o===============| \\==============o/"
  1540.     tr "                      \_             | ||            _/"
  1541.     tr "                        \_           | ||          _/"
  1542.     tr "                          \_         | ||        _/"
  1543.     tr "                            \_       | ||      _/"
  1544.     tr "                              \_     | ||    _/"
  1545.     tr "                                \_   | ||  _/"
  1546.     tr "                                  \_ | ||_/"
  1547.     tr "                                    \|_|/"
  1548.   return
  1549. D4: /* 250 */
  1550.     tr "                   ______o=========================o______"
  1551.     tr "                  /         ****   *****    ****          \"
  1552.     tr "                 ||             *  *       *    *         ||"
  1553.     tr "                 ||          ***   *****   *    *         ||"
  1554.     tr "                 ||         *        |\ *  *    *         ||"
  1555.     tr "                  \_        *****  **|||    ****         _/"
  1556.     tr "                    \o===============| \\==============o/"
  1557.     tr "                      \_             | ||            _/"
  1558.     tr "                        \_           | ||          _/"
  1559.     tr "                          \_         | ||        _/"
  1560.     tr "                            \_       | ||      _/"
  1561.     tr "                              \_     | ||    _/"
  1562.     tr "                                \_   | ||  _/"
  1563.     tr "                                  \_ | ||_/"
  1564.     tr "                                    \|_|/"
  1565.   return
  1566. D5: /* 300 */
  1567.     tr "                   ______o=========================o______"
  1568.     tr "                  /         ****    ****    ****          \"
  1569.     tr "                 ||             *  *    *  *    *         ||"
  1570.     tr "                 ||          ***   *    *  *    *         ||"
  1571.     tr "                 ||             *  * |\ *  *    *         ||"
  1572.     tr "                  \_        ****    *|||    ****         _/"
  1573.     tr "                    \o===============| \\==============o/"
  1574.     tr "                      \_             | ||            _/"
  1575.     tr "                        \_           | ||          _/"
  1576.     tr "                          \_         | ||        _/"
  1577.     tr "                            \_       | ||      _/"
  1578.     tr "                              \_     | ||    _/"
  1579.     tr "                                \_   | ||  _/"
  1580.     tr "                                  \_ | ||_/"
  1581.     tr "                                    \|_|/"
  1582.   return
  1583. D6: /* 400 */
  1584.     tr "                   ______o=========================o______"
  1585.     tr "                  /         *   *   ****    ****          \"
  1586.     tr "                 ||         *   *  *    *  *    *         ||"
  1587.     tr "                 ||         *****  *    *  *    *         ||"
  1588.     tr "                 ||             *  * |\ *  *    *         ||"
  1589.     tr "                  \_            *   *|||    ****         _/"
  1590.     tr "                    \o===============| \\==============o/"
  1591.     tr "                      \_             | ||            _/"
  1592.     tr "                        \_           | ||          _/"
  1593.     tr "                          \_         | ||        _/"
  1594.     tr "                            \_       | ||      _/"
  1595.     tr "                              \_     | ||    _/"
  1596.     tr "                                \_   | ||  _/"
  1597.     tr "                                  \_ | ||_/"
  1598.     tr "                                    \|_|/"
  1599.   return
  1600. D7: /* 450 */
  1601.     tr "                   ______o=========================o______"
  1602.     tr "                  /         *   *  *****    ****          \"
  1603.     tr "                 ||         *   *  *       *    *         ||"
  1604.     tr "                 ||         *****  *****   *    *         ||"
  1605.     tr "                 ||             *    |\ *  *    *         ||"
  1606.     tr "                  \_            *  **|||    ****         _/"
  1607.     tr "                    \o===============| \\==============o/"
  1608.     tr "                      \_             | ||            _/"
  1609.     tr "                        \_           | ||          _/"
  1610.     tr "                          \_         | ||        _/"
  1611.     tr "                            \_       | ||      _/"
  1612.     tr "                              \_     | ||    _/"
  1613.     tr "                                \_   | ||  _/"
  1614.     tr "                                  \_ | ||_/"
  1615.     tr "                                    \|_|/"
  1616.   return
  1617. D8: /* 500 */
  1618.     tr "                   ______o=========================o______"
  1619.     tr "                  /         *****   ****    ****          \"
  1620.     tr "                 ||         *      *    *  *    *         ||"
  1621.     tr "                 ||         ****   *    *  *    *         ||"
  1622.     tr "                 ||             *  * |\ *  *    *         ||"
  1623.     tr "                  \_        ****    *|||    ****         _/"
  1624.     tr "                    \o===============| \\==============o/"
  1625.     tr "                      \_             | ||            _/"
  1626.     tr "                        \_           | ||          _/"
  1627.     tr "                          \_         | ||        _/"
  1628.     tr "                            \_       | ||      _/"
  1629.     tr "                              \_     | ||    _/"
  1630.     tr "                                \_   | ||  _/"
  1631.     tr "                                  \_ | ||_/"
  1632.     tr "                                    \|_|/"
  1633.   return
  1634. D9: /* 600 */
  1635.     tr "                   ______o=========================o______"
  1636.     tr "                  /           ***   ****    ****          \"
  1637.     tr "                 ||          *     *    *  *    *         ||"
  1638.     tr "                 ||         ****   *    *  *    *         ||"
  1639.     tr "                 ||         *   *  * |\ *  *    *         ||"
  1640.     tr "                  \_         ***    *|||    ****         _/"
  1641.     tr "                    \o===============| \\==============o/"
  1642.     tr "                      \_             | ||            _/"
  1643.     tr "                        \_           | ||          _/"
  1644.     tr "                          \_         | ||        _/"
  1645.     tr "                            \_       | ||      _/"
  1646.     tr "                              \_     | ||    _/"
  1647.     tr "                                \_   | ||  _/"
  1648.     tr "                                  \_ | ||_/"
  1649.     tr "                                    \|_|/"
  1650.   return
  1651. D10: /* 750 */
  1652.     tr "                   ______o=========================o______"
  1653.     tr "                  /         *****  *****    ****          \"
  1654.     tr "                 ||             *  *       *    *         ||"
  1655.     tr "                 ||            *   *****   *    *         ||"
  1656.     tr "                 ||           *      |\ *  *    *         ||"
  1657.     tr "                  \_         *     **|||    ****         _/"
  1658.     tr "                    \o===============| \\==============o/"
  1659.     tr "                      \_             | ||            _/"
  1660.     tr "                        \_           | ||          _/"
  1661.     tr "                          \_         | ||        _/"
  1662.     tr "                            \_       | ||      _/"
  1663.     tr "                              \_     | ||    _/"
  1664.     tr "                                \_   | ||  _/"
  1665.     tr "                                  \_ | ||_/"
  1666.     tr "                                    \|_|/"
  1667.   return
  1668. D11: /* 1000 */
  1669.     tr "                   ______o=========================o______"
  1670.     tr "                  /        *    ****     ****    ****     \"
  1671.     tr "                 ||       **   *    *   *    *  *    *    ||"
  1672.     tr "                 ||        *   *    *   *    *  *    *    ||"
  1673.     tr "                 ||        *   *    *|\ *    *  *    *    ||"
  1674.     tr "                  \_      ***   **** ||| ****    ****    _/"
  1675.     tr "                    \o===============| \\==============o/"
  1676.     tr "                      \_             | ||            _/"
  1677.     tr "                        \_           | ||          _/"
  1678.     tr "                          \_         | ||        _/"
  1679.     tr "                            \_       | ||      _/"
  1680.     tr "                              \_     | ||    _/"
  1681.     tr "                                \_   | ||  _/"
  1682.     tr "                                  \_ | ||_/"
  1683.     tr "                                    \|_|/"
  1684.   return
  1685. D12: /* Free Spin */
  1686.     tr "                   ______o=========================o______"
  1687.     tr "                  /     *****  ****      *****  *****     \"
  1688.     tr "                 ||     *      *   *     *      *         ||"
  1689.     tr "                 ||     ***    ****      ***    ***       ||"
  1690.     tr "                 ||     *      *   * |\  *      *         ||"
  1691.     tr "                  \_    *      *   * ||| *****  *****    _/"
  1692.     tr "                    \o===============| \\==============o/"
  1693.     tr "                      \_             | ||            _/"
  1694.     tr "                        \_           | ||          _/"
  1695.     tr "                          \_         | ||        _/"
  1696.     tr "                            \_       | ||      _/"
  1697.     tr "                              \_     | ||    _/"
  1698.     tr "                                \_   | ||  _/"
  1699.     tr "                                  \_ | ||_/"
  1700.     tr "                                    \|_|/"
  1701.   return
  1702. D13: /* Surprise */
  1703.     tr "                   ______o=========================o______"
  1704.     tr "                  /     *       *   *****   *       *     \"
  1705.     tr "                 ||     *       *  *     *  *       *     ||"
  1706.     tr "                 ||     *   *   *  *     *  *   *   *     ||"
  1707.     tr "                 ||     *  * *  *  * |\  *  *  * *  *     ||"
  1708.     tr "                  \_     **   **    *|||*    **   **     _/"
  1709.     tr "                    \o===============| \\==============o/"
  1710.     tr "                      \_             | ||            _/"
  1711.     tr "                        \_           | ||          _/"
  1712.     tr "                          \_         | ||        _/"
  1713.     tr "                            \_       | ||      _/"
  1714.     tr "                              \_     | ||    _/"
  1715.     tr "                                \_   | ||  _/"
  1716.     tr "                                  \_ | ||_/"
  1717.     tr "                                    \|_|/"
  1718.   return
  1719. D14: /* Lose Turn */
  1720.     tr "                   ______o=========================o______"
  1721.     tr "                  /    *       ****       ****  *****     \"
  1722.     tr "                 ||    *      *    *     *      *         ||"
  1723.     tr "                 ||    *      *    *      ***   ***       ||"
  1724.     tr "                 ||    *      *    * |\      *  *         ||"
  1725.     tr "                  \_   *****   ****  ||| ****   *****    _/"
  1726.     tr "                    \o===============| \\==============o/"
  1727.     tr "                      \_             | ||            _/"
  1728.     tr "                        \_           | ||          _/"
  1729.     tr "                          \_         | ||        _/"
  1730.     tr "                            \_       | ||      _/"
  1731.     tr "                              \_     | ||    _/"
  1732.     tr "                                \_   | ||  _/"
  1733.     tr "                                  \_ | ||_/"
  1734.     tr "                                    \|_|/"
  1735.   return
  1736. D15: /* Bankrupt */
  1737.     tr "                   ______o=========================o______"
  1738.     tr "                  /     ****    ***      **    *  *   *   \"
  1739.     tr "                 ||     *   *  *   *     * *   *  *  *    ||"
  1740.     tr "                 ||     ****   *****     *  *  *  ***     ||"
  1741.     tr "                 ||     *   *  *   * |\  *   * *  *  *    ||"
  1742.     tr "                  \_    ****   *   * ||| *    **  *   *  _/"
  1743.     tr "                    \o===============| \\==============o/"
  1744.     tr "                      \_             | ||            _/"
  1745.     tr "                        \_           | ||          _/"
  1746.     tr "                          \_         | ||        _/"
  1747.     tr "                            \_       | ||      _/"
  1748.     tr "                              \_     | ||    _/"
  1749.     tr "                                \_   | ||  _/"
  1750.     tr "                                  \_ | ||_/"
  1751.     tr "                                    \|_|/"
  1752.   return
  1753.  
  1754. TITLE: /* Main Title Screen! */
  1755.     tr "         _________________          *=====================================*"
  1756.     tr "       _/                 \_        | /C\ /?\ /?\ /?\ /T\ ### ### ### ### |"
  1757.     tr "     _/        T H E        \_      | \C/ \?/ \?/ \?/ \T/ ### ### ### ### |"
  1758.     tr "   _/                         \_    |                                     |"
  1759.     tr "  /          W H E E L          \   | /?\ /A\ /?\ /T\ /?\ /?\ /?\ /D\ ### |"
  1760.     tr " |                               |  | \?/ \A/ \?/ \T/ \?/ \?/ \?/ \D/ ### |"
  1761.     tr " |              O F              |  *=====================================*"
  1762.     tr " |                               |"
  1763.     tr "  \_       F O R T U N E       _/                 P E R S O N"
  1764.     tr "    \_                       _/"
  1765.     tr "      \_       "left(ver,5)"       _/           Completely ReWritten by Dotoran!"
  1766.     tr "        \_               _/"
  1767.     tr "          \_____________/               Your Hosts: "hosts"!!n1"
  1768.   return
  1769.  
  1770. SYNTAX:;ERROR:;IOERR:;e1="n1 Error: "rc" ("errortext(rc)")"
  1771.   e2="  Line: "left(sigl,4)"File:";c="`"fp", "ver"'";e2=e2" "c;tr e1;tr e2
  1772.   logentry e1;logentry e2;e=strip(translate(sourceline(sigl),"\{",""))
  1773.   do while e~="";e3="Source: "left(e,37);tr e3;logentry e3;e=substr(e,38);end
  1774.   bufferflush;gc;signal QUIT3
  1775. /**************************************************************************\
  1776. \****************************************** Frontiers BBS (716)/823-9892 **/
  1777.